Allocation of resources to flexible requests

ABSTRACT

A system and method are disclosed which determine the flexibility of requests and utilize such flexibility of requests in managing a finite number of resources for servicing such requests. As an exemplary implementation within a telephony call center, a caller requesting to speak with an agent of the call center may be received. The call center may ascertain whether the caller is capable and willing to speak in multiple languages, such as both English and Spanish. A caller that is so capable and willing may be more efficiently serviced by allocating the “first available” of English and Spanish speaking resources to service the caller. Thus flexible requests that are capable and willing to be serviced by any of a plurality of resources, may be utilized to more effectively manage a finite number of resources in servicing requests.

RELATED APPLICATIONS

This application is related to co-pending and commonly assigned U.S.application Ser. No. 09/330,258 filed Jun. 10, 1999, entitled“ALLOCATION OF MULTI-FUNCTION RESOURCES,” the disclosure of which ishereby incorporated herein by reference.

TECHNICAL FIELD

This invention relates generally to function-based routing in, forexample, automatic call distributors or other structures allocating alimited number of resources to flexible incoming requests, and morespecifically to a system and method that prioritizes the allocation ofsuch resources taking into account the flexibility of the resourcerequests.

BACKGROUND

This invention relates to requests made to pools of limited resources,such as when a telephone caller is served by call agents in an agentpool, or when a computer application makes requests of a processor, oreven when several mechanics are sharing tools out of one tool box. Theinvention has particular exemplary application for skills-based routingfunctionality in automatic call distributors (“ACDs”).

In the prior art, requests from single-function (or “single-talent” or“single-skilled”) requester's were made to resources capable ofsatisfying the requests. Such requests were typically directed in serialfashion via a unitary queue to a Pool Control Logic. The Pool ControlLogic then directed each request to a resource capable of satisfying thesingle-function request. Typically, requests were served on a “firstcome, first served” basis. That is, as new requests reach the front oftheir respective queues, resources capable of satisfying the pendingrequests were typically allocated on a “first come, first served” basis.Typically, of the resources capable of satisfying a request, theresource that has been idle the longest period of time would beallocated to the request.

This state of the prior art is illustrated in FIG. 1, where, forexample, automatic call distribution (“ACD”) center 100 has a number ofagents on duty, some of whom speak English (E) 102, some of whom speakSpanish (S) 104, and some of whom speak French (F) 106. Typically,agents from each queue may be assigned to satisfy a request based oneach agent's idle time. That is, typically the agent that has been idlethe longest period of time among the English speaking agents 107 maysatisfy the next pending English request. The same may be true for theother agent pools, as well.

Single-function (or single-talent) callers 114 in unitary queue 116 makerequests to ACD center 100 in sequence. The requests for resources aretypically directed in serial fashion via the unitary queue 116 to a PoolControl Logic 112. Pool Control Logic 112 directs each request to aresource based on the type of resource requested. Thus, the Pool ControlLogic 112 may work to direct an English speaking caller to an agentcapable of speaking English, a Spanish speaking caller to an agentcapable of speaking Spanish, and a French speaking caller to an agentcapable of speaking French. As new requests reach the front of theirrespective queues, resources capable of satisfying the pending requestare typically allocated on a “first come, first served” basis withoutregard to prospective flexibility of the request.

As an example illustrated by FIG. 1, caller E₁ requesting an Englishspeaking agent is the first pending request in queue 114, caller S₂requesting a Spanish speaking agent is the next pending request in queue114, caller F₃ requesting a French speaking agent is the next pendingrequest in queue 114, and so on. Typically, in a prior art system PoolControl Logic 112 may assign caller E₁ to an available agent fromEnglish pool 102. If no agent is available from pool 102, caller E₁ maybe queued in queue 122 to await an agent from pool 102 to becomeavailable. Similarly, Pool Control Logic 112 may assign caller S₂ to anavailable agent from Spanish pool 104. If no agent is available frompool 104, caller S₂ may be queued in queue 124 to await an agent frompool 104 to become available. Likewise, Pool Control Logic 112 mayassign caller F₃ to an available agent from French pool 106. If no agentis available from pool 106, caller F₃ may be queued in queue 126 toawait an agent from pool 106 to become available.

Typically, the prior art does not consider the flexibility of a requestin allocating resources to satisfy such a request. For example, supposethat a caller to the ACD system 100 of FIG. 1 is capable of speakingboth English and Spanish. The prior art does not take advantage of suchflexibility in allocating resources to service the caller, but insteadpigeonholes the caller as being either an English speaking request or aSpanish speaking request. Generally, a request (e.g., a caller) isrequired to choose a single type of resource (e.g., an English speakingagent), even if the request is capable and willing to accept any of aplurality of different types of resources. More specifically, ACD system100 of FIG. 1 generally utilizes an Interactive Voice Response Unit(“IVRU”) to interact with a caller in order to ascertain the language inwhich the caller desires to speak. For instance, an IVRU may prompt acaller to “press 1 for English, press 2 for Spanish, or press 3 forFrench.” Thus, a caller may designate the language in which the callerdesires to interact with an agent. However, the ACD system 100 typicallydoes not determine whether a caller is capable of speaking a pluralityof languages and willing to interact with an agent in any of theplurality of languages.

Thus, as can be seen from the above-examples, the prior art allocatesresources to requests without taking into account requesters'flexibility or multi-functionality. Rather, the prior art allocatesresources to requests based solely on a single function (or singleattribute or single characteristic) of the requesters.

SUMMARY OF THE INVENTION

As described above, prior art methods for allocating resources fail toutilize “flexible” (or “multi-function” or “multi-talent” or“multi-skilled”) requests effectively. Continuing with the ACD exampleillustrated in FIG. 1, suppose that a particular caller is capable ofspeaking more than one language. Because in prior art methods the callerwould be allocated to a resource based solely on a single languageskill, prior art methods do not utilize such flexible/multi-functionalrequests effectively. For example, suppose a caller is capable ofspeaking both English and Spanish. Utilizing a prior art method ofallocating resources, such a caller must be queued for either a resourcefrom pool 102 or a resource from pool 104. Accordingly, such a callermay either be allocated to be serviced by agents from English speakingpool 102 or agents from Spanish speaking pool 104, but not both. Thatis, Pool Control Logic 112 may attempt to satisfy a caller's requestutilizing either a resource from pool 102 or utilizing a resource frompool 104, but does not attempt to choose a resource utilizing bothpools. Therefore, this prior art method does not utilize the fullcapabilities of such a multi-skilled requester.

It should be understood that the resources may also be multi-functional(or “multitalented” or “multi-skilled”). Allocation of multi-functionresources is the subject of co-pending and commonly assigned U.S. patentapplication Ser. No. 09/330,258, entitled “ALLOCATION OF MULTI-FUNCTIONRESOURCES.” Such patent application details a method and system forallocating resources to requests in a manner that utilizesmulti-function resources effectively in satisfying the requests.

Prior art methods of allocating resources to requests simply allocatethe resources based on a “first come, first serve” basis, without regardto each request's (or requester's) capabilities, flexibility, or value.Prior art methods of allocating resources to requests attempt to satisfyrequests (e.g., queue requests for the appropriate resources) basedsolely upon a single function or attribute or characteristic of therequest, without taking into consideration a request's flexibility ormulti-functionality. That is, prior art methods pigeon-holemulti-function, flexible requesters into a single type of request. It isdesirable to have more flexible requests utilized for more effectiveallocation of resources. Also, it is desirable to have morescarce/flexible/valuable resources allocated to requests in a moreefficient manner by taking into account a request'sflexibility/multi-functionality to better manage resources.

In an attempt to service requests in an efficient manner, traditionalskills-based routing and management has been utilized in the prior art.Good management adds only sufficient additional resources, however, toavoid long waiting periods by adding resources to the pools that areanticipated to be requested the most, which often results in resourcesstanding idle. Much of the difficulty in the prior art in achieving anefficient balance of these competing forces stems from having to workaround the inflexibility of requests into which requesters have beenpigeon-holed based solely upon a singlefunctionality/attribute/characteristic of each requester. An improvedresource management approach would make requests to multiple pools ofresources corresponding to the flexibility or multi-functionality of therequester, and such requests would be maintained concurrently for eachpool. This paradigm would give improved flexibility in satisfying orservicing flexible/multi-functional requesters.

There is therefore a need in the art to manage flexible requests (i.e.,requests from flexible requesters) more effectively by directing andmonitoring requests in a manner that takes into account such request'sflexibility (or “multi-functionality”) rather than issuing orpigeon-holing each serial request to a particular pool of resourcesbased solely upon one functionality/attribute/characteristic of therequest. There is also a need in the art for a protocol by which tomanage such flexible requests so that the flexibility of the requestsare fully optimized toward cost-effective service.

The present invention is directed to a system and method which determinethe flexibility of requests and utilize such flexibility of requests inmanaging a finite number of resources for servicing such requests. Itshould be recognized that the flexibility of a request is typically aresult of the flexibility of the requester having issued such request.Therefore, when referring herein to the flexibility of a request, itshould be understood that such flexibility of a request likely, inactuality, corresponds to the flexibility of a requester. Thus,“flexibility of requests” as used herein is generally interchangeablewith “flexibility of requesters.” That is, one may think of a request asbeing flexible (or multi-functional) in that the request is capable ofbeing satisfied by any of a plurality of different resources, andsimilarly one may think of a requester that issues a request as beingflexible (or multi-functional) in that the requester may is capable ofbeing satisfied by any of a plurality of different resources respondingto a request issued by such requester. Thus, while much of thedescription of embodiments of the present invention may be describedherein with reference to the flexibility of a request, it should beunderstood that such flexibility is intended to encompass theflexibility of the requester that issued such request.

The resource management scheme of a most preferred embodiment isimplemented to manage resources within a telephony call center. Forexample, the resource management scheme of a most preferred embodimentis utilized to manage/allocate call center agents to service receivedcallers to the telephony call center. A most preferred embodimentdetermines the flexibility of the callers, and utilizes such flexibility(if any) in effectively managing/allocating the available agents toservice such callers. Suppose, for instance, that a resource managementscheme is implemented within a telephony call center having Englishspeaking agents, Spanish speaking agents, and French speaking agents toallocate appropriate agents to received callers. Such resources may beimplemented within separate, homogeneous pools, i.e., an Englishspeaking pool of resources, a Spanish speaking pool of resources, and aFrench speaking pool of resources.

The resource management scheme may receive callers to the call center,determine the appropriate resource pool(s) for servicing the callers,and attempt to allocate an available one of the appropriate resources toservice each caller. Callers may be received that are only capable ofspeaking a single language, such as English, Spanish, or French. Inattempting to service such inflexible callers, the resource managementscheme is limited to only selecting an available resource from one poolof resources (i.e., from the pool of resources having the same languageskill as that possessed by the caller). However, other callers may bereceived that are capable and willing to be serviced by any agent ofdifferent pools. For instance, a caller that is capable of speaking bothEnglish and Spanish, may be capable and willing to be serviced by anavailable agent from either the English speaking pool of agents or theSpanish speaking pool of agents. By utilizing such flexibility ofreceived requests (e.g., from callers), the resource management schemecan more effectively and more efficiently manage its resources (e.g.,agents).

Such a resource management scheme of a most preferred embodiment issomewhat analogous to the allocation of tables (e.g., resources) withina restaurant to customers (e.g., requesters). For example, it may beascertained by a restaurant employee whether a customer desires to beseated in a smoking section or a non-smoking section of the restaurant.If required to choose one or the other, then the potential flexibilityof a customer is disregarded, and the customer is pigeon-holed into onlyone section, much like requests for resources in prior art resourceallocation schemes, as described above. However, a flexible customer(e.g., one willing to be seated in either smoking or non-smokingsections of the restaurant) may be given the option of selecting thesection that is “first available” to the customer. By doing so, thecustomer may be serviced in a much more efficient manner.

Likewise, in a telephony call center, it may be ascertained whether acaller is capable and willing to speak in multiple languages, such asboth English and Spanish, and a caller that is so capable and willingmay be more efficiently serviced by allocating the “first available” ofEnglish and Spanish resources to service the caller. As disclosed ingreater detail hereafter, flexible requests need not be serviced only ona “first available” basis, but rather preferences of the requests and/orthe resource manager may be considered in allocating resources to suchflexible requests. For example, a caller to a telephony call center thatis capable and willing to be serviced by either an English speakingagent or a Spanish speaking agent may be satisfied by the first of theEnglish and Spanish agents to become available, as described above.However, such a flexible caller may prefer to be serviced by an Englishspeaking agent. Such a preference of the flexible caller may be takeninto account in allocating resources (e.g., agents) by, for example,first attempting to service the caller with an English speaking agent,and only allocating a Spanish speaking agent to the caller if an Englishspeaking agent is not obtained within a particular amount of time (e.g.,a “threshold” amount of time).

Thus, the preference of a flexible caller may be taken into account inmanaging resources. Additionally or alternatively, the preferences ofthe resource manager may be considered. For example, a resource managermay desire to service a flexible caller with a particular resource. Forinstance, suppose a caller to a telephony call center is capable andwilling to be serviced by either an English or Spanish speaking agent. Aresource manager may prefer that the caller be serviced by a Spanishspeaking agent. For instance, the telephony call center may be receivinga particularly high volume of callers requesting English speakingresources and particularly low volume of callers requesting Spanishspeaking resources, and the resource manager may therefore desire toservice the flexible caller with the less busy Spanish resources ratherthan adding a further request to the already busy English resources.Such a preference of the resource manager may be taken into account inallocating resources (e.g., agents) by, for example, first attempting toservice the caller with a Spanish speaking agent, and only allocating anEnglish speaking agent to the caller if a Spanish speaking agent is notobtained within a particular amount of time (e.g., a “threshold” amountof time).

It should be appreciated that the invention as described herein is notintended to be limited to language-oriented resources and requests.Furthermore, the present invention is not intended to be limited to atelephony call center environment. Rather, such an environment isintended solely as an example that renders the disclosure enabling formany other environments in which a finite number of resources aremanaged to service flexible requests. Thus, the invention is intended toapply with equivalent enabling effect generally to allocating any typeof resources to any type of flexible requests. For instance, the presentinvention is intended to be enabling on many types of flexible requestsfor resources, such as telephone callers with multi-lingual capability,or flexible requests for data elements in a database, or flexiblerequests for computer network resources, or flexible requests fortelephony network resources, or even, for example, flexible requestsmade by mechanics sharing tools out of a unitary toolbox. Thus, theresource management scheme of the present invention is not intended tobe limited solely to the exemplary telephony resources provided herein,but may be applied equally to various other types of resources. As oneexample, various types of flexible requests for computer resources maybe received and utilized for better management of the computer resourcesin servicing requests.

The foregoing has outlined rather broadly the features and technicaladvantages of the present invention in order that the detaileddescription of the invention that follows may be better understood.Additional features and advantages of the invention will be describedhereinafter which form the subject of the claims of the invention. Itshould be appreciated by those skilled in the art that the conceptionand specific embodiment disclosed may be readily utilized as a basis formodifying or designing other structures for carrying out the samepurposes of the present invention. It should also be realized by thoseskilled in the art that such equivalent constructions do not depart fromthe spirit and scope of the invention as set forth in the appendedclaims. The novel features which are believed to be characteristic ofthe invention, both as to its organization and method of operation,together with further objects and advantages will be better understoodfrom the following description when considered in connection with theaccompanying figures. It is to be expressly understood, however, thateach of the figures is provided for the purpose of illustration anddescription only and is not intended as a definition of the limits ofthe present invention.

BRIEF DESCRIPTION OF THE DRAWING

For a more complete understanding of the present invention, reference isnow made to the following descriptions taken in conjunction with theaccompanying drawing, in which:

FIG. 1 illustrates serial, single-function requests of the prior art inwhich each single-function request is presented to a particular resourcepool capable of satisfying such single-function request;

FIG. 2 illustrates an exemplary implementation of a preferred embodimentutilizing flexible requests to provide improved management of resourcesfor satisfying such requests;

FIG. 3 illustrates an exemplary implementation of a preferred embodimentin which each request's flexibility is identified;

FIG. 4 illustrates an exemplary structure for identifying requests'flexibility;

FIG. 5 illustrates an exemplary structure for identifying requests'flexibility and preferences;

FIG. 6 illustrates an exemplary structure for identifying requests'flexibility and preferences;

FIG. 7 illustrates an exemplary implementation of a preferred embodimentfor allocating resources to a flexible request;

FIGS. 8A and 8B illustrate a further exemplary implementation of apreferred embodiment for allocating resources to flexible requests;

FIG. 9 illustrates an exemplary implementation of a preferred embodimentfor allocating resources to flexible requests in accordance with therequests' preferences;

FIG. 10 illustrates an exemplary implementation of a preferredembodiment for allocating resources to flexible requests in accordancewith the resource manager's preferences;

FIG. 11 illustrates an exemplary implementation of a preferredembodiment for allocating resources to flexible requests by balancingthe requests' preferences and the resource manager's preferences;

FIG. 12 illustrates an exemplary implementation of a preferredembodiment for allocating multi-functional resources to flexiblerequests;

FIG. 13 illustrates a further exemplary implementation of a preferred;embodiment for allocating multi-functional resources to flexiblerequests;

FIG. 14 illustrates a further exemplary implementation of a preferredembodiment for allocating multi-functional resources to flexiblerequests; and

FIG. 15 illustrates an exemplary computer environment in which aresource management scheme of the present invention may be implementedto manage data storage resources to service data storage requestsreceived from various types of devices.

DETAILED DESCRIPTION

A most preferred embodiment of the present invention is implementedwithin a telephony call center for allocating resources of the callcenter (e.g., agents) to service requests (e.g., received calls). Itshould be recognized that such a call center may be an inbound callcenter that primarily receives and services inbound calls, an outboundcall center that primarily places outbound calls to provide a service,or a hybrid that services both inbound and outbound calls. It should befurther recognized that the present invention has a much broaderapplication than only within a call center. That is, the resourcemanagement scheme disclosed herein may be utilized for any type ofsystem/environment in which it is desirable to allocate a limited numberof resources to requests in order to service such requests. Thus, manyother environments may exist in which a limited number of resources areto be managed to allow for effective allocation of such resources toservice requests, and any such environment is intended to be within thescope of the present invention. Accordingly, the present invention isnot intended to be limited only to the environments provided herein,such as telephony call centers, but rather such environments areintended solely as examples that render the disclosure enabling for manyother environments in which resource management is desirable.

Turning to FIG. 2, an exemplary telephony call center implementation ofa preferred embodiment of the present invention is shown. Morespecifically, an exemplary implementation for an ACD 200 is shown. Asillustrated by FIG. 2, a preferred implementation may utilizeflexible/multi-functional requests to provide improved management ofresources for satisfying such requests. As illustrated, pools ofresources capable of servicing requests may be provided. Morespecifically, pool 202 of English speaking resources, pool 204 ofSpanish speaking resources, and pool 206 of French speaking resourcesmay be provided. Additionally, requests from callers (or “requesters”)214 requesting a resource may be queued in queue 216 for Pool ControlLogic 212. Pool Control Logic 212 may receive each caller's request, andmake a request for a resource to service each caller's request fromresource pools 202, 204, and 206.

As illustrated, a request 214 may be for an agent or “resource” thatspeaks a specific language, such as English (E), French (F), or Spanish(S). Queue 216 may also contain requests from callers that arebilingual, speaking both English and Spanish (ES), both English andFrench (EF), or both French and Spanish (FS). Queue 216 may also containrequests from callers that are trilingual, speaking English, Spanish andFrench (ESF). Pool Control Logic 212 allocates each received request tothe resource pools able to service the request. For example, PoolControl Logic 212 may issue a request for a resource from English pool202 to service an English speaking request, a request for a resourcefrom Spanish pool 204 to service a Spanish speaking request, or arequest for a resource from French pool 206 to service a French speakingrequest. Furthermore, Pool Control Logic 212 may make requests tomultiple pools of resources in an attempt to service a flexible (e.g.,multi-lingual) request. For example, Pool Control Logic 212 may make arequest to both English pool 202 and Spanish pool 204 in an attempt toobtain an available resource to service a flexible request capable andwilling to be serviced by either an English or Spanish resource.

Such a resource management scheme of a most preferred embodiment issomewhat analogous to the allocation of tables (e.g., resources) withina restaurant to customers (e.g., requesters). For example, it may beascertained by a restaurant employee whether a customer desires to beseated in a smoking section or a non-smoking section of the restaurant.If required to choose one or the other, then the potential flexibilityof a customer is disregarded, and the customer is pigeon-holed into onlyone section, much like requests for resources in prior art resourceallocation schemes, as described above. However, a flexible customer(e.g., one willing to be seated in either smoking or non-smokingsections of the restaurant) may be given the option of selecting thesection that is “first available” to the customer. By doing so, thecustomer may be serviced in a much more efficient manner.

Likewise, in the exemplary ACD 200 of FIG. 2, it may be ascertainedwhether a caller is capable and willing to speak in multiple languages,such as both English and Spanish, and a caller that is so capable andwilling may be more efficiently serviced by allocating the “firstavailable” of English and Spanish resources to service the caller. Eachrequester 214 may simply make a request for an appropriate resource toPool Control Logic 212, and Pool Control Logic 212 may then issue one ormore requests to the pools of resources capable of servicing requests.For instance, a caller capable and willing to be serviced by either anEnglish resource or a Spanish resource may be received by Pool ControlLogic 212, and Pool Control Logic 212 may issue requests to English pool202 and Spanish pool 204 for a resource (e.g., agent) to service suchcaller. Of course, the multiple requests issued by Pool Control Logic212 may be transparent to the requester 214. That is, the requester 214may not be aware of the requests made to the pools of resources by PoolControl Logic 212. Pool Control Logic 212 may accept requests fromrequesters 214 in a manner similar to Pool Control Logics of the priorart. That is, Pool Control Logic 212 may receive requests in sequence.However, according to a preferred embodiment of the present invention,Pool Control Logic 212 may utilize the flexibility/multi-functionalityof requests in allocating resources to each request.

As disclosed in greater detail hereafter, flexible requests need not beserviced only on a “first available” basis, but rather preferences ofthe requests and/or the resource manager may be considered in allocatingresources to such flexible requests. For example, a caller to ACD system200 of FIG. 2 that is capable and willing to be serviced by either anEnglish speaking agent or a Spanish speaking agent may be satisfied bythe first of the English and Spanish agents to become available, asdescribed above. However, such a flexible caller may prefer to beserviced by an English speaking agent. Such a preference of the flexiblecaller may be taken into account in allocating resources (e.g., agents)by, for example, first attempting to service the caller with an Englishspeaking agent, and only allocating a Spanish speaking agent to thecaller if an English speaking agent is not obtained within a particularamount of time (e.g., a “threshold” amount of time). For instance, arequest may initially be made by Pool Control Logic 212 only to Englishpool 202 in an attempt to obtain an English speaking agent to servicethe received caller, and if an English speaking agent is not obtainedwithin one minute thereafter, then a request may be made to the Spanishpool 204 in an attempt to service the received caller with the firstagent to become available from either the English pool 202 or Spanishpool 204.

Thus, the preference of a flexible caller may be taken into account inmanaging resources. Additionally or alternatively, the preferences ofthe resource manager may be considered. For example, a resource managermay desire to service a flexible caller with a particular resource. Forinstance, suppose a caller to ACD system 200 of FIG. 2 is capable andwilling to be serviced by either an English or Spanish speaking agent. Aresource manager may prefer that the caller be serviced by a Spanishspeaking agent. For instance, the ACD system 200 may be receiving aparticularly high volume of callers requesting English speakingresources and particularly low volume of callers requesting Spanishspeaking resources, and the resource manager may therefore desire toservice the flexible caller with the less busy Spanish resources ratherthan adding a further request to the already busy English resources.Such a preference of the resource manager may be taken into account inallocating resources (e.g., agents) by, for example, first attempting toservice the caller with a Spanish speaking agent, and only allocating anEnglish speaking agent to the caller if a Spanish speaking agent is notobtained within a particular amount of time (e.g., a “threshold” amountof time). For instance, a request may initially be made by Pool ControlLogic 212 only to Spanish pool 204 in an attempt to obtain a Spanishspeaking agent to service the received caller, and if a Spanish speakingagent is not obtained within one minute thereafter, then a request maybe made to the English pool 202 in an attempt to service the receivedcaller with the first agent to become available from either the Englishpool 202 or Spanish pool 204.

Of course, in alternative implementations, the requesters need not becallers to a telephony call center, and the resources need not be callcenter agents for servicing callers. For example, Pool Control Logic 212of FIG. 2 may embody a sophisticated automated banking system comprisingseveral different pools of text-to-speech (TTS) resources (e.g., TTSconverters) available to callers, including pool 202 of English TTSresources, pool 204 of Spanish TTS resources, and pool 206 of French TTSresources. In this example, a request for a French TTS resource may onlybe satisfied by a pool or pools of TTS resources capable of speakingFrench (e.g., Pool 206 of FIG. 2). A request for a Spanish TTS resourcemay only be satisfied by a pool or pools of TTS resources capable ofspeaking Spanish (e.g., Pool 204 of FIG. 2). English TTS requests mayonly be satisfied by a pool or pools of TTS resources capable ofspeaking English (e.g., Pool 202 of FIG. 2). Assuming the goal is to usethe first available appropriate resource to service each request (sothat a caller is made to wait the shortest possible time before beingserved), when a caller is capable of speaking multiple languages (i.e.,is a multi-functional or flexible caller) a preferred embodiment enablessimultaneous requests to be made to each pool of resources capable ofservicing such a caller. For example, if a caller is capable of speakingboth English and Spanish (ES), simultaneous requests may be issued byPool Control Logic 212 to pool(s) of resources capable of servicing therequest in English and to pool(s) of resources capable of servicing therequest in Spanish. The pending requests may be maintained concurrentlyfor each pool capable of satisfying the flexible request. When one ofthe pools produces an available resource for the request, the remainingconcurrently pending requests are removed from the respective queues,and the resource ID from the “winning pool” is sent to the requestingprocess (i.e., to service the flexible request).

Rather than issuing simultaneous requests to each pool of resourcescapable of satisfying a flexible requester, requests may be issued in amanner that accounts for the preferences of a flexible requester. Forexample, a request may first be issued to pool(s) of resources mostpreferred by a requester. If after a determined period of time therequest remains unsatisfied, a request may be issued to less preferablepool(s) of resources, and the pending requests may be maintainedconcurrently for each pool of resources for which a request has beenmade. Further, if after a second determined period of time the requestremains unsatisfied, a request may be issued to still less preferablepool(s) of resources, and the pending requests may be maintainedconcurrently for each pool of resources for which a request has beenmade. Further still, if after a third determined period of time therequest remains unsatisfied, a request may be issued to least preferablepool(s) of resources, and the pending requests may be maintainedconcurrently for each pool of resources for which a request has beenmade, and so on. When one of the pools produces an available resourcefor servicing the flexible request, the remaining concurrently pendingrequests are removed, and the resource ID from the “winning pool” issent to the requesting process (i.e., to service the flexible request).

For example, a flexible caller to ACD system 200 of FIG. 2 may speakEnglish, Spanish and French. However, the caller may prefer to speakEnglish. The caller's second, less preferred language may be Spanish,and the caller's third, least preferred language may be French. Thus,the Pool Control Logic 212 may first attempt to service the caller'srequest with an English speaking resource by making a request to EnglishPool 202. If after a determined period of time an English speakingresource from pool 202 is not obtained to service the flexible caller,the Pool Control Logic 212 may issue a request to pool 204 for a Spanishspeaking resource. Assuming that a Spanish speaking resource is notimmediately available, the Spanish request to pool 204 may remainpending concurrently with the English request to pool 202 for theflexible caller. If after a determined period of time neither an Englishspeaking resource from pool 202 nor a Spanish speaking resource frompool 204 is obtained to service the flexible caller, the Pool ControlLogic 212 may issue a request to pool 206 for a French speakingresource. Assuming that a French speaking resource is not immediatelyavailable, the French request to pool 206 may remain pendingconcurrently with the English and Spanish requests (i.e., to pools 202and 204, respectively) for the flexible caller. Thereafter, the firstresource from pools 202, 204, and 206 to become available is assigned toservice the flexible caller, and the remaining requests pending for theflexible caller (i.e., the requests for the other pools of resources)will be removed.

As discussed above, a flexible requester's preferences may be taken intoaccount by prioritizing certain types of resources over others throughthe use of a time sequence (or “cascade”) of requests to the appropriateresources. Utilizing such a time sequence (or “cascade”) approach toprioritize requests, a flexible requester's preferences may be takeninto account while still attempting to satisfy the flexible requester ina timely fashion. Thus, the somewhat conflicting goals of satisfying arequester quickly and satisfying a requester in a manner preferred bythe requester may be balanced by the cascade approach. Such anembodiment that is capable of taking into account a flexible requester'spreferences will be discussed in greater detail hereafter.

Alternatively, resources may be managed to service a flexible request ina manner that accounts for the resource manager's preferences, ratherthan the flexible requester's preferences. For example, a request mayfirst be issued to less scarce/less valuable pool(s) of resources. Ifafter a determined period of time the request remains unsatisfied, arequest may be issued to more scarce/more valuable pool(s) of resources,and the pending requests may be maintained concurrently for each pool ofresources for which a request has been made. Further, if after a seconddetermined period of time the request remains unsatisfied, a request maybe issued to still more scarce/more valuable pool(s) of resources, andthe pending requests may be maintained concurrently for each pool ofresources for which a request has been made. Further still, if after athird determined period of time the request remains unsatisfied, arequest may be issued to most scarce/most valuable pool(s) of resources,and the pending requests may be maintained concurrently for each pool ofresources for which a request has been made, and so on. When one of thepools produces an available resource for the flexible request, theremaining concurrently pending requests are removed, and the resource IDfrom the “winning pool” is sent to the requesting process (i.e., toservice the flexible request).

Continuing with the ACD example illustrated in FIG. 2, suppose thatthere exist 10 agents or resources in English pool 202, 5 agents orresources in Spanish pool 204, and 2 agents or resources in French pool206. A manager of the ACD may desire to first attempt to service aflexible/multi-functional request with a less scarce resource to savemore scarce resources. Thus, suppose that ACD 200 receives a flexiblecaller that is capable of speaking English, Spanish, and French. PoolControl Logic 212 may attempt to first service the flexible caller'srequest by issuing a request to English pool 202 because that pool hasthe most resources that are capable of servicing the flexible caller.Assuming that a resource is not immediately available from English pool202, the request may be queued for pool 202. If after a determinedperiod of time an English speaking resource is not obtained from pool202 to service the flexible caller, a request may be issued to Spanishpool 204 because that pool has the second most resources that arecapable of servicing the flexible caller, and the pending requests forpools 202 and 204 may be maintained concurrently. If after a seconddetermined period of time neither an English speaking resource from pool202 nor a Spanish speaking resource from pool 204 is obtained to servicethe flexible caller, a request may be issued to French pool 206 becausethat pool has the least number of resources that are capable ofservicing the flexible caller, and the pending requests for pools 202,204 and 206 may be maintained concurrently. When one of the poolsproduces an available resource for servicing the flexible caller, theremaining concurrently pending requests are removed, and the resource IDfrom the “winning pool” is sent to the requesting process (i.e., toservice the flexible caller).

In such an alternative implementation, a time sequence (or “cascade”)may be utilized to prioritize requests issued to resources that arecapable of servicing a flexible request in a manner that achievesoptimum use of the resources. Utilizing such a time sequence (or“cascade”) approach to prioritize requests, a resource manager'spreferences may be taken into account while still attempting to satisfythe flexible requester in a timely fashion. Thus, the somewhatconflicting goals of satisfying a requester quickly and satisfying arequester in a manner preferred by the resource manager may be balancedby the cascade approach. Thus, the flexibility or multi-functionality ofrequests may be utilized to achieve optimum use of the resources. Inthis manner, the provider or manager of the resources may take advantageof a request's flexibility to optimize the efficiency and use of theresources. Such an embodiment that is capable of taking into account asystem's or resource manager's preferences will be discussed in greaterdetail hereafter.

In yet another alternative embodiment, the preferences of a flexiblerequester and the preferences of a resource manager may both be utilizedand taken into account to a certain degree. For example, the preferencesof a flexible requester and the preferences of a resource manager may bebalanced when allocating resources to service such a flexible requester.For instance, in such an alternative embodiment, a time sequence (or“cascade”) may be utilized to prioritize requests in a manner thatbalances the preferences of a flexible requester and the preferences ofa resource manager. Utilizing such a time sequence (or “cascade”)approach to prioritize requests, both a flexible requester's andresource manager's preferences may be taken into account while stillattempting to satisfy the requester in a timely fashion. Thus, thesomewhat conflicting goals of satisfying a flexible requester quickly,satisfying a flexible requester in a manner preferred by the requester,and satisfying a flexible requester in a manner preferred by a resourcemanager may be balanced by the cascade approach. Thus, the flexibilityor multi-functionality of requesters may be utilized to achieve abalanced use of the resources. Alternatively, the preferences of arequester may be considered when utilization of the resources is notstrained, for example. For instance, when the call volume to ACD system200 of FIG. 2 is relatively low, the preferences of flexible callers maybe considered in allocating agents to service such flexible callers.However, when the call volume to ACD system 200 is high, the preferencesof flexible callers may be disregarded and the preferences of theresource manager may instead be considered to enable more efficientoverall operation of ACD system 200 during such high call volume. Suchan embodiment that is capable of taking into account both a requester'spreferences and a resource manager's preferences will be discussed ingreater detail hereafter.

As described above, a preferred embodiment utilizes the flexibility ofrequests to effectively manage resources to service such flexiblerequests. Of course, before the flexibility of a request may be utilizedin managing resources in this manner, the flexibility of requests needto be determined and/or identified. Turning to FIG. 3, one method ofdetermining the flexibility of a request and identifying or labeling theflexibility of a request is illustrated. As shown, Pool Control Logic212 receives requests 214 which are queued in Queue 216. As a request isreceived, the flexibility/functionality of such request may bedetermined. Such flexibility/functionality of a request may bedetermined by interacting with a requester. For example, in an ACDenvironment the ACD may interact with a caller by asking the callerquestions and receiving responses from the caller. More specifically, auser may press telephone keys and the ACD may recognize thecorresponding Dual Tone MultiFrequency (“DTMF”) signals, or a user mayspeak responses or commands to the ACD and the ACD may utilize voicerecognition technology to interpret the spoken responses. Alternatively,a request may be obtained from a profile maintained for the requester.For example, utilizing the previous bank example, the bank may have aprofile for its customers that provides the bank's system withinformation about each customer's flexibility/functionality and possiblyeach customer's preferences. Alternatively, other methods may beutilized for receiving a requester's flexibility/functionalitycapabilities and a requester's preferences, and any method suitable forreceiving such information is intended to be within the scope of thepresent invention.

Once the flexibility/functionality is determined for each request, PoolControl Logic 212 may identify each request's flexibility/functionality,as illustrated by block 350 in FIG. 3. Many methods exist for PoolControl Logic 212 to identify or label the flexibility/functionality ofeach request. Block 350 of FIG. 3 may be a file, database, table, datastructure, or other type of structure for relating a request'sflexibility/functionality with the request. For example, in the ACDenvironment illustrated in FIG. 3, Pool Control Logic 212 may receiverequest R₁. After determining that request R₁ is capable of speakingboth English and Spanish, Pool Control Logic 212 may identify or labelrequest R₁ appropriately (e.g., “ES”), as shown in block 350.Thereafter, Pool Control Logic 212 may utilize such identification orlabel to effectively service request R₁. For example, Pool Control Logic212 may make requests for a resource from both English pool 202 andSpanish pool 204 in an attempt to satisfy request R₁ in a quick andefficient manner. That is, Pool Control Logic 212 may attempt to satisfyrequest R₁ with the first available resource from pools 202 and 204, asdescribed above.

Continuing with the exemplary ACD environment illustrated in FIG. 3,Pool Control Logic 212 may receive request R₂ and determine that requestR₂ is capable of speaking only Spanish. Thus, Pool Control Logic 212 mayidentify or label request R₂ appropriately (e.g., “S”), as shown inblock 350. Also, Pool Control Logic 212 may receive request R₃ anddetermine that request R₃ is capable of speaking only French. Thus, PoolControl Logic 212 may identify or label request R₃ appropriately (e.g.,“F”), as shown in block 350. Additionally, Pool Control Logic 212 mayreceive request R₄ and determine that request R₄ is capable of speakingboth English and French. Thus, Pool Control Logic 212 may identify orlabel request R₄ appropriately (e.g., “EF”), as shown in block 350.Further, Pool Control Logic 212 may receive request R₅ and determinethat request R₅ is capable of speaking only English. Thus, Pool ControlLogic 212 may identify or label request R₅ appropriately (e.g., “E”), asshown in block 350. Utilizing the identification or label informationfor each request, Pool Control Logic 212 may allocate resources in adesirable manner to service the received requests.

A further example of how requests may be identified or labeled is shownin FIG. 4. As shown in FIG. 4, block 350 may be a table that identifieseach request and their corresponding flexibility/functionality. Forexample, request R₁ may have a “Y” (e.g., “Yes”) corresponding toEnglish and Spanish and a “N” (e.g., “No”) corresponding to French,indicating that requester R₁ is capable of speaking both English andSpanish but not French. Request R₂ may have a “Y” corresponding toSpanish and a “N” corresponding to both English and French, indicatingthat requester R₂ is capable of only speaking Spanish. Request R₃ mayhave a “Y” corresponding to French and a “N” corresponding to bothEnglish and Spanish, indicating that requester R₃ is capable of onlyspeaking French. Request R₄ may have a “Y” corresponding to both Englishand French and a “N” corresponding to Spanish, indicating that requesterR₄ is capable of speaking both English and French but not Spanish.Likewise, request R₅ may have a “Y” corresponding to both English andFrench and a “N” corresponding to Spanish, indicating that requester R₅is capable of speaking both English and French but not Spanish. Finally,request R₆ may have a “Y” corresponding to English, Spanish and French,indicating that requester R₆ is capable of speaking all three languages.It should be understood that a structure other than a table may beutilized to relate a request's flexibility/functionality with therequest, including a file, database, data structure, or other type ofstructure.

In a most preferred embodiment, a request may be flexible but have apreference as to the type of resource desired. For example, as describedabove, a requester may speak both English and Spanish, but prefer tospeak English. In a preferred embodiment, Pool Control Logic 212 mayutilize a flexible request's preferences to attempt to satisfy therequest with a preferred resource, while still attempting to satisfy therequest in a timely manner. Turning to FIG. 5, an exemplary table 350that may be utilized by Pool Control Logic 212 for identifying theflexibility and preferences of each request is shown. For example, arequest R₁ may be received which is capable of speaking both English andSpanish. Additionally, request R₁ may prefer to speak English overSpanish. Pool Control Logic 212 may identify theflexibility/functionality and preferences of request R₁ as shown in FIG.5. That is, Pool Control Logic 212 may identify request R₁ as preferringto speak English by providing a “I” for English in table 350, and asalso being capable of speaking Spanish by providing a “2” for Spanish intable 350, corresponding respectively to request R₁. Thus, thefunctional capability of request R₁ may be numbered sequentially frommost preferred to least preferred.

Continuing with the exemplary table illustrated in FIG. 5, requests R₂and R₃ may only speak Spanish and French, respectively. Pool ControlLogic 212 may identify those requests' flexibility/functionality intable 350 by providing a “1” in the appropriate column for each request.Request R₄ may speak both English and French, but prefer to speakFrench. Accordingly, Pool Control Logic 212 may identify request R₄ aspreferring to speak French by providing a “1” for French in table 350,and as also being capable of speaking English by providing a “2” forEnglish in table 350, corresponding respectively to request R₄.

As a further example, request R₅ may speak both English and French andmay have no preference between those languages. That is, request R₅ maynot prefer one language (English or French) over the other. In apreferred embodiment, Pool Control Logic 212 may identify the request'sflexibility/functionality and preference (or lack thereof) by providinga “1” for both English and French in table 350 corresponding to requestR₅. Thus, Pool Control Logic 212 may determine from table 350 thatrequest R₅ is capable of speaking both English and French and does notprefer one language over the other. Taking this example a step further,suppose that request R₆ is capable of speaking English, French andSpanish. Further suppose that request R₆ prefers to speak English orFrench over Spanish, but does not have a preference between English andFrench. Pool Control Logic 212 may identify suchflexibility/functionality and preference by providing a “1” for bothEnglish and French in table 350, corresponding to request R₆. PoolControl Logic 212 may further identify the flexibility/functionality andpreference of request R₆ by providing a “2” for Spanish in table 350,corresponding to request R₆.

Methods other than that shown and described in conjunction with FIG. 5may be implemented to indicate a request's flexibility/functionality andpreferences. That is, a method other than sequentially numbering thefunctional capabilities of a request from most preferred to leastpreferred may be implemented, and any such implementation is intended tobe within the scope of the present invention. For example, a requester'spreferences may be identified as a particular time delay for eachrequest. Turning to FIG. 6, an example of this alternative method foridentifying requests' preferences is shown. For example, a request R₁may be received which is capable of speaking both English and Spanish.Additionally, request R₁ may prefer to speak English over Spanish. PoolControl Logic 212 may identify the flexibility/functionality andpreferences of request R₁ as shown in FIG. 6. That is, Pool ControlLogic 212 may identify request R₁ as preferring to speak English byproviding a 0 time delay for English in table 350, and as also beingcapable of speaking Spanish by providing a 30 second time delay forSpanish in table 350, corresponding respectively to request R₁.

Continuing with the exemplary table illustrated in FIG. 6, requests R₂and R₃ may only speak Spanish and French, respectively. Pool ControlLogic 212 may identify those requests' flexibility/functionality intable 350 by providing a 0 time delay in the appropriate column for eachrequest. Request R₄ may speak both English and French, but prefer tospeak French. Accordingly, Pool Control Logic 212 may identify requestR₄ as preferring to speak French by providing a 0 time delay for Frenchin table 350, and as also being capable of speaking English by providinga 30 second time delay for English in table 350, correspondingrespectively to request R₄.

As a further example, request R₅ may speak both English and French andmay have no preference between those languages. That is, request R₅ maynot prefer one language (English or French) over the other. In apreferred embodiment, Pool Control Logic 212 may identify the request'sflexibility/functionality and preference (or lack thereof) by providinga 0 time delay for both English and French in table 350 corresponding torequest R₅. Thus, Pool Control Logic 212 may determine from table 350that request R₅ is capable of speaking both English and French and doesnot prefer one language over the other. Taking this example a stepfurther, suppose that request R₆ is capable of speaking English, Frenchand Spanish. Further suppose that request R₆ prefers to speak English orFrench over Spanish, but does not have a preference between English andFrench. Pool Control Logic 212 may identify suchflexibility/functionality and preference by providing a 0 time delay forboth English and French in table 350, corresponding to request R₆. PoolControl Logic 212 may further identify the flexibility/functionality andpreference of request R₆ by providing a 30 second time delay for Spanishin table 350, corresponding to request R₆.

Turning now to FIG. 7, an example is illustrated for a preferredembodiment implemented in an ACD 200. As shown, a request “ESF” may bereceived from a flexible caller capable of speaking English, Spanish,and French. Pool Control Logic 212 determines that the caller is capableof speaking English, Spanish, and French, and then issues theappropriate requests to resource pools 202, 204, and 206 that arecapable of servicing the request. Delays D₁, D₂ and D₃ may be utilizedby Pool Control Logic 212 to further control how resources are allocatedin response to the request's flexibility/functionality, preferences,and/or each resource's scarcity/value. For example, delays D₁, D₂ and D₃may each be “0,” such that there is no delay before issuing each requestR₁, R₂ and R₃ in an attempt to obtain a resource for servicing theflexible caller ESF. In such case, requests R₁, R₂ and R₃ may be issuedsimultaneously and immediately in an attempt to obtain a resourcecapable of servicing flexible request ESF. Once a resource is obtainedfor either request R₁, R₂ or R₃, such resource may be allocated toservice flexible caller ESF and the remaining pending requests areremoved.

As a further example, suppose flexible caller ESF prefers to speakEnglish, rather than Spanish or French, and prefers to speak Spanish,rather than French. In such case, delay D₁ may have value “0,” such thata request R₁ is immediately made to English pool 202 for a preferredEnglish speaking resource. Assuming that a resource is not immediatelyavailable to satisfy the request, the request may be queued in queue 222for English pool 202. If after a determined time delay (D₂) a resourcehas not been obtained to service flexible caller ESF, request R₂ may beissued to Spanish pool 204 for a less preferred Spanish speakingresource. Assuming that a resource is not immediately available tosatisfy request R₂, it may be queued in queue 224 for Spanish pool 204and remain pending concurrently with request R₁. If after a furtherdetermined time delay (D₃) the flexible caller ESF is still notserviced, request R₃ may be issued to French pool 206 for a leastpreferred French speaking resource. Assuming that a resource is notimmediately available to satisfy request R₃, it may be queued in queue226 for French pool 206 and remain pending concurrently with requests R₁and R₂. Thereafter, the first pool to produce an available resourcecapable of servicing flexible request ESF will be assigned to suchflexible request ESF, and all of the other pending requests for requestESF will be removed. Accordingly, the delays D₁, D₂ and D₃ may beutilized to prioritize requests in accordance with a flexiblerequester's preference.

As still a further example, one or more of delays D₁, D₂ and D₃ may beused to prioritize the requests in accordance with a resource manager'spreferences. That is, one or more of delays D₁, D₂ and D₃ may beimplemented in a manner that first attempts to service the flexiblecaller ESF with less scarce/less valuable resources from pools 202, 204and 206, before utilizing more scarce resources. For example, supposeEnglish pool 202 has 10 resources, Spanish pool 204 has 5 resources, andFrench pool 206 has 2 resources. Pool Control Logic 212 may firstattempt to service flexible request ESF with a resource from Englishpool 202 because that pool has the most resources that are capable ofservicing the flexible request. Thus, delay D, may have value “0” toallow request R₁ to be immediately issued to pool 202. Assuming that aresource is not immediately available to service the request, therequest may be queued in queue 222 for English pool 202.

If after a determined time delay (D₂) a resource is not obtained toservice the flexible caller ESF, request R₂ may be issued to Spanishpool 204 for a more scarce/valuable Spanish speaking resource. Assumingthat a Spanish speaking resource is not immediately available to servicerequest R₂, it may be queued in queue 224 for Spanish pool 204 andremain pending concurrently with request R₁. If after a furtherdetermined time delay (D₃) the flexible caller ESF is still notserviced, request R₃ may be issued to French pool 206 for a morescarce/valuable French speaking resource. Assuming that a Frenchspeaking resource is not immediately available to service request R₃, itmay be queued in queue 226 for French pool 206 and remain pendingconcurrently with requests R₁ and R₂. Thereafter, the first pool toproduce an available resource capable of servicing flexible request ESFwill be assigned to such flexible request ESF, and all of the otherpending requests for flexible caller ESF will be removed.

As yet a further example, one or more of delays D₁, D₂ and D₃ may beutilized in a manner that balances the resource manager's desire toservice a request with less scarce/less valuable resources from pools202, 204 and 206 and a flexible requester's preferences. For example,suppose that flexible caller ESF can speak English, Spanish and French,but prefers to speak French over English and Spanish, and prefers tospeak Spanish over English. Thus, the delays according to flexiblecaller ESF's preferences may be D₁=60 seconds for English pool 202,D₂=30 seconds for Spanish pool 204 and D₃=0 seconds for French pool 206.Further suppose that a resource manager prefers to utilize Englishresources, then Spanish resources, and lastly French resources.

One method of balancing the requester's preferences and the resourcemanager's preferences is to assign a percentage of consideration orweight to be given the flexible requester's preferences and the resourcemanager's preferences and calculate the time delays D₁, D₂ and D₃accordingly. For example, suppose that the flexible requester's andresource manager's preferences are to be balanced equally (e.g., 50%each). The delay D₁ may be determined with the following formula:0.5(user's preference)+0.5(resource manager's preference)=D₁. Applyingsuch a formula in the above example we obtain the following for D₁:0.5(60)+0.5(0)=30 seconds. Accordingly, a 30 second delay may beutilized before issuing a request to pool 202 for an English speakingresource.

Likewise, the delay D₂ may be determined with the following formula:0.5(user's preference)+0.5(resource manager's preference)=D₂. Applyingsuch a formula in the above example we obtain the following for D₂:0.5(30)+0.5(30)=30 seconds. Accordingly, a 30 second delay may beutilized before issuing a request to pool 204 for a Spanish speakingresource. Similarly, the delay D₃ may be determined with the followingformula: 0.5(user's preference)+0.5(resource manager's preference)=D₃.Applying such a formula in the above example we obtain the following forD₃: 0.5(0)+0.5(60)=30 seconds. Accordingly, a 30 second delay may beutilized before issuing a request to pool 206 for a French speakingresource. It should be noted that the formula used to calculate eachdelay in the above example compromises between the delays desired by theflexible requester and the delays desired by the resource manager. Otherformulas or methods may be utilized to balance between the preferencesof the requester and the resource manager, and any suitable formulas ormethods are intended to be within the scope of the present invention.For instance, a formula may be utilized that always enables a request tobe immediately made for some resource pool (i.e., always results in atleast one of delays D₁, D₂, and D₃ being 0), rather than potentiallydelaying all requests.

Turning to FIGS. 8A and 8B, a further example is shown of a preferredembodiment implemented in an ACD 200. As shown in FIG. 8A, requests maybe received and queued for Pool Control Logic 212 in queue 216. Forexample, request ES from a flexible requester capable of speaking bothEnglish and Spanish may be received. In response, Pool Control Logic 212may issue requests R₁ and R₂ simultaneously in an attempt to obtain aresource from English pool 202 or Spanish pool 204 to service requestES. If a resource is not immediately available from either of pools 202or 204, a request for flexible caller ES may be queued in queues 222 and224, as shown in FIG. 8A. Pool Control Logic 212 may then receiveinflexible request S capable of speaking only Spanish. In response, PoolControl Logic 212 may issue request R₃ to Spanish pool 204 in an attemptto obtain a resource capable of servicing inflexible request S. If aresource is not immediately available from pool 204, a request forinflexible caller S may be queued behind the pending request for callerES in queue 224, as shown in FIG. 8A. Pool Control Logic may thenreceive inflexible request F capable of speaking only French. Inresponse, Pool Control Logic 212 may issue request R₄ to French pool 206in an attempt to obtain a resource capable of servicing inflexiblerequest F. If a resource is not immediately available from pool 206, arequest for inflexible caller F may be queued in queue 226, as shown inFIG. 8A.

Pool Control Logic 212 may then receive flexible request EF from arequester capable of speaking both English and French. In response, PoolControl Logic 212 may issue requests R₅ and R₆ simultaneously in anattempt to obtain a resource from English pool 202 or French pool 206 toservice flexible request EF. If a resource is not immediately availablefrom either of pools 202 or 206, a request for flexible caller EF may bequeued in queues 222 and 226, as shown in FIG. 8A. Pool Control Logic212 may then receive inflexible request E from a requester capable ofspeaking only English. In response, Pool Control Logic 212 may issuerequest R₇ to English pool 202 in an attempt to obtain a resourcecapable of servicing inflexible request E. If a resource is notimmediately available from pool 202, a request for inflexible caller Emay be queued in queue 222, as shown in FIG. 8A. Pool Control Logic 212may then receive flexible request ESF from a requester capable ofspeaking English, Spanish and French. In response, Pool Control Logic212 may issue requests R₈, R₉ and R₁₀ simultaneously in an attempt toobtain a resource from English pool 202, Spanish pool 204 or French pool206 to service flexible request ESF. If a resource is not immediatelyavailable from either of pools 202, 204, or 206, a request for flexiblecaller ESF may be queued in queues 222, 224, and 226, as shown in FIG.8A. Pool Control Logic 212 may then receive flexible request FS from arequester capable of speaking both French and Spanish. In response, PoolControl Logic 212 may issue requests R₁₁, and R₁₂ simultaneously in anattempt to obtain a resource from Spanish pool 204 or French pool 206 toservice flexible request FS. If a resource is not immediately availablefrom either of pools 204 or 206, a request for flexible caller FS may bequeued in queues 224 and 226, as shown in FIG. 8A.

Preferably, once a resource becomes available to service a pendingrequest, it begins to service such request and all concurrently pendingrequests corresponding thereto are removed from the queues. Forinstance, suppose that once all of the requests described in the aboveexample are received and are pending in queues 222, 224, and 226 asshown in FIG. 8A that an English resource becomes available from pool202. Such available English resource would preferably service thelongest pending request from queue 222, which in the example of FIG. 8Ais an ES request (i.e., the ES request that was placed into queue 222from request R₁). Once the English resource begins to service such ESrequest, it would be removed from queue 222, and the next longestpending request (i.e., request EF in the example of FIG. 8A) in suchqueue would become the next to be serviced in that queue. The result ofsuch request ES of FIG. 8A being serviced is shown in FIG. 8B, whereinsuch request ES has been removed from queue 222. As further shown inFIG. 8B, the corresponding concurrently pending request's for theserviced request are likewise removed from their queues. For instance,request ES has been removed from queue 224 since a resource from pool202 has committed to servicing the caller corresponding to such ESrequest.

Turning to FIG. 9, a further example is illustrated for a preferredembodiment implemented in an ACD 200, in which requests are issued inaccordance with flexible requesters' preferences. As shown, requests maybe received and queued for Pool Control Logic 212 in queue 216. Asfurther shown, Pool Control Logic 212 may access table 350 that containsthe multi-flexibility/functionality and preferences for each request.For example, Pool Control Logic 212 may receive request C, from acaller. Pool Control Logic 212 may access table 350 and determine thatcaller C₁ speaks both English and Spanish, but prefers to speak English.In response, Pool Control Logic 212 may immediately issue a request R₁to English pool 202 in an attempt to obtain a preferred resource toservice request C₁. If a resource is not immediately available fromEnglish pool 202, request R₁ for caller C, may be queued in queue 222for English pool 202. If after a determined time delay D₁ the request R₁has not been serviced, Pool Control Logic 212 may issue request R₂ toSpanish pool 204 in an attempt to obtain a less preferred resource toservice caller C₁. If a resource is not immediately available fromSpanish pool 204, request R₂ for caller C₁ may be queued in queue 224for Spanish pool 204 and remain pending concurrently with request R₁ forcaller C₁. The first resource to become available from either Englishpool 202 or Spanish pool 204 may be assigned to service caller C₁ andthe remaining pending request for caller C₁ will be removed.

Pool Control Logic 212 may then receive request C₂ from a caller. PoolControl Logic 212 may access table 350 and determine that caller C₂speaks only Spanish. In response, Pool Control Logic 212 may immediatelyissue a request R₃ to Spanish pool 204 in an attempt to obtain aresource to service inflexible request C₂. If a resource is notimmediately available from Spanish pool 204, request R₃ for caller C₂may be queued in queue 224 for Spanish pool 204. When a resource becomesavailable from Spanish pool 204 to service caller C₂, it may be assignedto service caller C₂.

Pool Control Logic 212 may then receive request C₃ from a caller. PoolControl Logic 212 may access table 350 and determine that caller C₃speaks only French. In response, Pool Control Logic 212 may immediatelyissue a request R₄ to French pool 206 in an attempt to obtain a resourceto service inflexible request C₃. If a resource is not immediatelyavailable from French pool 206, request R₄ for caller C₃ may be queuedin queue 226 for French pool 206. When a resource becomes available fromFrench pool 206 to service inflexible caller C₃, it may be assigned tocaller C₃.

Pool Control Logic 212 may then receive request C₄ from a caller. PoolControl Logic 212 may access table 350 and determine that caller C₄speaks both English and French, but prefers to speak French. Inresponse, Pool Control Logic 212 may immediately issue a request R₅ toFrench pool 206 in an attempt to obtain a preferred resource to serviceflexible request C₄. If a resource is not immediately available fromFrench pool 206, request R₅ for caller C₄ may be queued in queue 226 forFrench pool 206. If after a determined time delay D₂ the request R₅ hasnot been serviced, Pool Control Logic 212 may issue request R₆ toEnglish pool 202 in an attempt to obtain a less preferred resource toservice flexible caller C₄. If a resource is not immediately availablefrom English pool 202, request R₆ for caller C₄ may be queued in queue222 for English pool 202 and remain pending concurrently with request R₅for caller C₄. When a resource becomes available from either Englishpool 202 or French pool 206 to service caller C₄, it may be assigned tocaller C₄ and the remaining pending request for caller C₄ will beremoved.

Pool Control Logic 212 may then receive request C₅ from a caller. PoolControl Logic 212 may access table 350 and determine that caller C₅speaks both English and Spanish, and has no preference between the twolanguages. In response, Pool Control Logic 212 may immediately issuerequests R₇ and R₈ respectively to English pool 202 and French pool 206in an attempt to obtain a resource to service flexible request C₅. If aresource is not immediately available from either pool 202 or 206,requests R₇ and R₈ for caller C₅ may be queued respectively in queues222 and 226 and remain concurrently pending. When a resource becomesavailable from either English pool 202 or French pool 206 to servicecaller C₅, it may be assigned to flexible caller C₅ and the remainingpending request for caller C₅ will be removed.

Pool Control Logic 212 may then receive request C₆ from a caller. PoolControl Logic 212 may access table 350 and determine that caller C₆speaks English, Spanish and French. Pool Control Logic 212 may furtherdetermine from table 350 that caller C₆ prefers to speak English andFrench over Spanish, and has no preference as to English and French. Inresponse, Pool Control Logic 212 may immediately issue requests R₉ andR₁₀ respectively to English pool 202 and French pool 206 in an attemptto obtain a preferred resource to service flexible request C₆. If aresource is not immediately available from pool 202 or pool 206,requests R₉ and R₁₀ for caller C₆ may be queued respectively in queues222 and 226. If after a determined time delay D₃ the flexible request C₆has not been serviced, Pool Control Logic 212 may issue request R₁₁ toSpanish pool 204 in an attempt to obtain a less preferred resource toservice caller C₆. If a resource is not immediately available fromSpanish pool 204, request R₁₁ for caller C₆ may be queued in queue 224for Spanish pool 204 and remain pending concurrently with requests R₉and R₁₀ for caller C₆. When a resource becomes available from eitherEnglish pool 202, Spanish pool 204 or French pool 206 to service callerC₆, it may be assigned to caller C₆ and the remaining pending requestsfor caller C₆ will be removed.

Turning now to FIG. 10, another example of a preferred embodimentimplemented in an ACD 200 is illustrated, in which resources are managedin accordance with a resource manager's preferences. As shown, requestsfor service by a resource may be received and queued for Pool ControlLogic 212 in queue 216. As further shown, resources 242, 244 and 246exist in pools 202, 204 and 206, respectively. For example, 6 resources242 may exist in English pool 202, 3 resources 244 may exist in Spanishpool 204, and 1 resource 246 may exist in French pool 206. Pool ControlLogic 212 may receive flexible request ES from a requester capable ofspeaking both English and Spanish. In response, Pool Control Logic 212may immediately make a request R₁ to English pool 202 because Englishpool 202 is the pool with the most resources capable of servicingrequest ES. If an English resource 242 is not immediately available, therequest may be queued in queue 222 for English pool 202. If after adetermined time delay D₁ the caller ES is not serviced, Pool ControlLogic 212 may issue request R₂ for a more scarce resource 244 fromSpanish pool 204. If a resource 244 is not immediately available fromSpanish pool 204, the request may be queued in queue 224 and remainpending concurrently with the request for English pool 202. When aresource becomes available from one of the pools 202 or 204, thatresource may be assigned to service caller ES and the remaining pendingrequest will be removed.

Pool Control Logic 212 may then receive request S from a requestercapable of speaking only Spanish. In response, Pool Control Logic 212may immediately make a request R₃ to Spanish pool 204 to attempt toobtain a resource 244 capable of servicing inflexible request S. If aSpanish resource 244 is not immediately available, the request R₃ may bequeued in queue 224 for Spanish pool 204. When a resource becomesavailable from Spanish pool 204 to service request S, that resource maybe assigned to request S.

Pool Control Logic 212 may then receive request F from a requestercapable of speaking only French. In response, Pool Control Logic 212 mayimmediately make a request R₄ to French pool 206 to attempt to obtain aresource 246 capable of servicing inflexible request F. If a Frenchresource 246 is not immediately available, the request R₄ may be queuedin queue 226 for French pool 206. When a resource becomes available fromFrench pool 206 to service request F, that resource may be assigned torequest F.

Pool Control Logic 212 may then receive flexible request EF from arequester capable of speaking both English and French. In response, PoolControl Logic 212 may immediately make a request R₅ to English pool 202because English pool 202 is the pool with the most resources capable ofservicing request EF. If an English resource 242 is not immediatelyavailable, the request R₅ may be queued in queue 222 for English pool202. If after a determined time delay D₂ the flexible caller EF remainsunsatisfied, Pool Control Logic 212 may issue request R₆ for a morescarce resource 246 from French pool 206. If a resource 246 is notimmediately available from French pool 206, the request R₆ may be queuedin queue 226 and remain pending concurrently with the request forEnglish pool 202. When a resource becomes available from one of thepools 202 or 206 to service flexible caller EF, the available resourcemay be assigned to flexible caller EF and the remaining pending requestwill be removed.

Pool Control Logic 212 may then receive request E from a requestercapable of speaking only English. In response, Pool Control Logic 212may immediately make a request R₇ to English pool 202 to attempt toobtain a resource 242 capable of servicing inflexible request E. If anEnglish resource 242 is not immediately available, the request may bequeued in queue 222 for English pool 202. When a resource becomesavailable from English pool 202 to service request E, that resource maybe assigned to request E.

Pool Control Logic 212 may then receive request ESF from a flexiblerequester capable of speaking English, Spanish and French. In response,Pool Control Logic 212 may immediately make a request R₈ to English pool202 because English pool 202 is the pool with the most resources capableof servicing request ESF. If an English resource 242 is not immediatelyavailable, the request R₈ may be queued in queue 222 for English pool202. If after a determined time delay D₃ the flexible caller ESF has notbeen serviced, Pool Control Logic 212 may issue request R₉ for a morescarce resource 244 from Spanish pool 204. If a resource 244 is notimmediately available from Spanish pool 204, the request R₈ may bequeued in queue 224 and remain pending concurrently with request R₈ forEnglish pool 202. If after a determined time delay D₄ the flexiblecaller ESF is still not serviced, Pool Control Logic 212 may issuerequest R₁₀ for an even more scarce resource 246 from French pool 206.If a resource 246 is not immediately available from French pool 206, therequest R₁₀ may be queued in queue 226 and remain pending concurrentlywith requests R₈ and R₉. When a resource becomes available from one ofthe pools 202, 204 or 206 to service flexible caller ESF, the availableresource may be assigned to service flexible caller ESF and theremaining pending requests will be removed.

Pool Control Logic 212 may then receive request FS from a flexiblerequester capable of speaking both Spanish and French. In response, PoolControl Logic 212 may immediately make a request R₁₁ to Spanish pool 204because Spanish pool 204 is the pool with the most resources capable ofservicing request FS. If a Spanish resource 244 is not immediatelyavailable, the request R₁₁ may be queued in queue 224 for Spanish pool204. If after a determined time delay D₅ the flexible caller FS is notserviced, Pool Control Logic 212 may issue request R₁₁ for a more scarceresource 246 from French pool 206. If a resource 246 is not immediatelyavailable from French pool 206, the request R₁₂ may be queued in queue226 and remain pending concurrently with request R₁₁. When a resourcebecomes available from one of the pools 204 or 206 to service requestFS, the available resource may be assigned to service flexible caller FSand the remaining pending request will be removed.

Turning now to FIG. 11, another example of a preferred embodimentimplemented in an ACD 200 is illustrated, in which flexible requests'preferences and the resource manager's preferences are balanced. Asshown, requests for service by a resource may be received and queued forPool Control Logic 212 in queue 216. As further shown, resources 242,244 and 246 may exist in pools 202, 204 and 206, respectively. Table 350may identify each request's flexibility/functionality and preferences asdelays. As discussed previously, other methods may be utilized toidentify each request's flexibility/functionality and preferences. Also,table 280 may represent the resource manager's preferences.

For example, suppose that the resource manager's preference is to firstattempt to satisfy a flexible request with English pool 202, then withSpanish pool 204 after a 30 second delay, and finally with French pool206 after a 60 second delay. Further suppose that flexible caller C₁ isreceived in queue 216. Pool Control Logic 212 may access table 350 anddetermine that caller C, can speak English, Spanish and French. PoolControl Logic 212 may further determine based on the delay valuesprovided in table 350 that flexible caller C₁ prefers to speak Englishover Spanish and French, and prefers to speak Spanish over French. Onemethod for balancing a request's preferences with the resource manager'spreferences is by summing a percentage of the delay that each desires.The percentages may be thought of as the weight or amount ofconsideration to be given to each preference.

Such percentages may be illustrated as a sliding scale 290. As scale 290illustrates, on one end of the scale only the resource manager'spreferences are considered (e.g., resource manager's preferencesweighted 100% and request's preferences weighted 0%). On the oppositeend of the scale only the request's preferences are considered (e.g.,resource manager's preferences weighted 0% and request's preferencesweighted 100%). In the middle of the scale the competing preferences areweighted equally (e.g., resource manager's preferences weighted 50% andrequest's preferences weighted 50%). A scale (or other interactivestructure) may be provided to a user to allow a user to interact withthe system and set the desired percentages. Accordingly, the percentagesmay be predetermined by a user, the Pool Control Logic 212 or theresource pools. Alternatively, the percentages may be determined inreal-time by the Pool Control Logic 212 or resource pools. Continuingwith the ACD example, the Pool Control Logic 212 or resource pools mayadjust the percentages to give more weight to flexible requester'spreferences when call volume is low, and the Pool Control Logic 212 orresource pools may adjust the percentages to give more weight to theresource manager's preferences as the call volume increases.

Suppose that the flexible requester's preferences and resource manager'spreferences are to be weighted equally (as shown by scale 290 in FIG.11). One method for determining a delay that balances the resourcemanager's and flexible requester's preferences each 50% is by utilizingthe formula: 0.5(requester's preference)+0.5(resource manager'spreference)=Delay. Applying such formula in the above example todetermine the delay to be utilized for English pool 202 for caller C₁results in 0.5(0)+0.5(0)=0 second delay for English pool 202 for callerC₁. Accordingly, Pool Control Logic 212 may immediately issue request R₁to English pool 202 for caller C₁ with no delay.

Similarly, the formula may be applied to determine the delay to beutilized for Spanish pool 204, which results in 0.5(30)+0.5(30)=30second delay for Spanish pool 204 for caller C₁. Accordingly, PoolControl Logic 212 may issue a request R₂ to Spanish pool 204 for callerC₁ if C₁ is not serviced within 30 seconds. Further, the formula may beapplied to determine the delay to be utilized for French pool 206, whichresults in 0.5(60)+0.5(60)=60 second delay for French pool 206 forcaller C₁. Accordingly, Pool Control Logic 212 may issue a request R₃ toFrench pool 206 for caller C₁ if C₁ is not serviced within 60 seconds.It should be noted that in this example caller C₁'s preferences and theresource manager's preferences are identical. That is, both therequester C₁ and the resource manager prefer English, then Spanish, andthen French. As a result, when balancing the preferences, requests areissued in a manner desired by both the requester and the resourcemanager (e.g., first to English pool 202, then to Spanish pool 204, andthen to French pool 206).

Continuing with the example illustrated in FIG. 11, flexible caller C₂may next be received. Pool Control Logic 212 may access table 350 anddetermine that caller C₂ can speak both English and Spanish. PoolControl Logic 212 may further determine based on the delay valuesprovided in table 350 that caller C₂ prefers to speak Spanish overEnglish. Again, assuming that the requester's preferences and resourcemanager's preferences are to be weighted equally, the following formulamay be utilized: 0.5(requester's preference)+0.5(resource manager'spreference)=Delay. Applying such formula to determine the delay to beutilized for English pool 202 for caller C₂ results in 0.5(30)+0.5(0)=15second delay for English pool 202 for caller C₂. Accordingly, PoolControl Logic 212 may issue request R₄ to English pool 202 for caller C₂after a 15 second delay.

Similarly, the delay to be utilized for Spanish pool 204 for caller C₂may be determined as 0.5(0)+0.5(30)=15 second delay for Spanish pool 204for caller C₁. Accordingly, Pool Control Logic 212 may issue a requestR₅ to Spanish pool 204 for caller C₂ after a 15 second delay. It shouldbe noted that in this example caller C₂'s preferences and the resourcemanager's preferences are conflicting. That is, the requester C₂ prefersSpanish first, then English, and the resource manager prefers to utilizeEnglish first, then Spanish. As a result, when balancing the preferencesequally, requests are issued in a manner that compromises between thedelays desired by the requester and those desired by the resourcemanager (e.g., a 15 second delay is imposed before issuing requests toeither English pool 202 or Spanish pool 204). Of course, other balancingmethods may be implemented, and any such balancing scheme is intended tobe within the scope of the present invention.

Flexible caller C₃ may next be received in queue 216. Pool Control Logic212 may access table 350 and determine that caller C₃ can speak bothEnglish and French. Pool Control Logic 212 may further determine basedon the delay values provided in table 350 that caller C₃ prefers tospeak French over English. Again, assuming that the request'spreferences and resource manager's preferences are to be weightedequally, formula 0.5(request's preference)+0.5(resource manager'spreference)=Delay may be utilized. Applying such formula to determinethe delay to be utilized for English pool 202 for caller C₃ results in0.5(30)+0.5(0)=15 second delay for English pool 202 for caller C₃.Accordingly, Pool Control Logic 212 may issue request R₆ to English pool202 for caller C₃ after a 15 second delay.

Similarly, the delay to be utilized for French pool 206 for caller C₃may be determined as 0.5(0)+0.5(60)=30 second delay for French pool 206for caller C₃. Accordingly, Pool Control Logic 212 may issue a requestR₇ to French pool 206 for caller C₃ if C₃ is not serviced within 30seconds. It should be noted that in this example caller C₃'s preferencesand the resource manager's preferences are conflicting. That is, therequester C₃ prefers French first, then English, and the resourcemanager prefers to utilize English first, then French. As a result, whenbalancing the preferences equally, requests are issued in a manner thatcompromises between the delays desired by the requester and thosedesired by the resource manager (e.g., a 15 second delay is imposedbefore issuing a request to English pool 202 and a 30 second delay isimposed before issuing a request to French pool 206).

Flexible caller C₄ may next be received in queue 216. Pool Control Logic212 may access table 350 and determine that caller C₄ can speak English,Spanish and French. Pool Control Logic 212 may further determine basedon the delay values provided in table 350 that caller C₄ prefers tospeak French over English and Spanish, and prefers to speak Spanish overEnglish. Again, assuming that the request's preferences and resourcemanager's preferences are to be weighted equally, formula 0.5(request'spreference)+0.5(resource manager's preference)=Delay may be utilized.Applying such formula to determine the delay to be utilized for Englishpool 202 for caller C₄ results in 0.5(60)+0.5(0)=30 second delay forEnglish pool 202 for caller C₄. Accordingly, Pool Control Logic 212 mayissue request R₈ to English pool 202 for caller C₄ after a 30 seconddelay.

Similarly, the delay to be utilized for Spanish pool 204 for caller C₄may be determined as 0.5(30)+0.5(30)=30 second delay for Spanish pool204 for caller C₄. Accordingly, Pool Control Logic 212 may issue arequest R₉ to Spanish pool 204 for caller C₄ after a 30 second delay.Likewise, the delay to be utilized for French pool 206 for caller C₄ maybe determined as 0.5(0)+0.5(60)=30 second delay for French pool 206 forcaller C₄. Accordingly, Pool Control Logic 212 may issue a request R₁₀to French pool 206 for caller C₄ after a 30 second delay. It should benoted that in this example caller C₄'s preferences and the resourcemanager's preferences are in direct conflict. That is, the requester C₄prefers French first, then Spanish, then English, and the resourcemanager prefers to utilize English resources first, then Spanish, thenFrench. As a result, when balancing the preferences equally, requestsare issued in a manner that compromises between the delays desired bythe requester and those desired by the resource manager (e.g., a 30second delay is imposed before issuing a request to English pool 202,Spanish pool 204 and French pool 206).

A preferred embodiment of the present invention may be implemented in asystem having multi-functional resources, as disclosed in co-pending andcommonly assigned U.S. patent application Ser. No. 09/330,258 entitled“ALLOCATION OF MULTI-FUNCTION RESOURCES.” For example, as disclosed inU.S. patent application Ser. No. 09/330,258, resources may be groupedinto homogeneous pools, such that resources in each pool are “pure” asto functional capability. A homogeneous pool described as being “pure”indicates that the resources within the pool all share one or morecommon functional capabilities, from the perspective of the requestersand the Homogeneous Pool Control. The resources in a given homogeneouspool may have additional disparate characteristics that are not relevantto satisfying requests, but they are grouped together because they shareone or more functional capabilities relevant to satisfying requests.

Turning to FIG. 12, an example of a preferred embodiment implemented inan ACD 200 having some resources with multi-functionality (e.g., capableof speaking more than one language) is illustrated. As shown in FIG. 12,the resources 230 may be grouped into homogeneous pools 250. Forexample, resources 230 capable of speaking only English may be groupedinto pool 250 _(E), resources 230 capable of speaking only Spanish maybe grouped into pool 250 _(S), resources 230 capable of speaking onlyFrench may be grouped into pool 250 _(F), resources 230 capable ofspeaking both English and Spanish may be grouped into pool 250 _(ES),resources 230 capable of speaking both French and Spanish may be groupedinto pool 250 _(FS), resources 230 capable of speaking both English andFrench may be grouped into pool 250 _(EF), and resources capable ofspeaking English, French and Spanish may be grouped into pool 250_(ESF).

As discussed in greater detail in co-pending U.S. patent applicationSer. No. 09/330,258 entitled “ALLOCATION OF MULTI-FUNCTION RESOURCES,”pools 250 _(E), 250 _(S) and 250 _(F) may be considered primary levelpools. Such primary pools may have less value/less flexibility/lessfunctionality than the other pools. As illustrated by the exemplary ACDshown in FIG. 12, the resources 230 contained in such pools may becapable of speaking only one language. Pools 250 _(ES), 250 _(EF) and250 _(FS) may be considered secondary level pools. Such secondary poolsmay have more value/more flexibility/more functionality than the primarypools. As illustrated by the exemplary ACD shown in FIG. 12, theresources 230 contained in such pools may be bi-lingual. Pool 250 _(ESF)may be considered a tertiary level pool. Such tertiary level pool mayhave more value/more flexibility/more functionality than the primary andsecondary pools. As illustrated by the exemplary ACD shown in FIG. 12,the resources 230 contained in pool 250 _(ESF) may be tri-lingual.

As further shown in FIG. 12, request ESF may be received from a flexiblecaller capable of speaking English, Spanish and French. Pool ControlLogic 212 may recognize that the requester is capable of speaking allthree languages and immediately issue requests R₁, R₂ and R₃ to theprimary level pools 250 _(E), 250 _(S) and 250 _(F), respectively. Thatis, because the primary level pools 250 _(E), 250 _(S) and 250 _(F) maybe less valuable/less flexible than the other pools, it may be desirableto first attempt to satisfy flexible request ESF with a resource fromone of such primary level pools.

If a resource is not immediately available to satisfy flexible requestESF from pools 250 _(E), 250 _(S) or 250 _(F), requests R₁, R₂ and R₃may be queued in queues 260 for their respective pools and remainconcurrently pending. If after a determined time flexible request ESFremains unsatisfied, Pool Control Logic 212 may issue requests R₄, R₅and R₆ to secondary level pools 250 _(ES), 250 _(FS) and 250 _(EF),respectively. That is, if after time delays D₁, D₂ and D₃ flexiblerequest ESF remains unsatisfied, Pool Control Logic 212 may issuerequests R₄, R₅ and R₆ to the more valuable/more flexible secondarylevel pools. Thus, Pool Control Logic 212 may attempt to utilize morevaluable/more flexible secondary level pools to satisfy flexible requestESF if the flexible request has not been satisfied within a determinedtime period by a resource from one of the primary level pools.

If a resource is not immediately available to satisfy flexible requestESF from secondary pools 250 _(ES), 25 _(FS) or 250 _(EF), requests R₄,R₅ and R₆ may be queued in queues 260 for their respective pools andremain concurrently pending with previously issued requests R₁, R₂ andR₃. If after a further determined time flexible request ESF remainsunsatisfied, Pool Control Logic 212 may issue request R₇ to tertiarylevel pool 250 _(ESF). That is, if after time delay D₄ flexible requestESF remains unsatisfied, Pool Control Logic 212 may issue request R₇ tothe even more valuable/more flexible tertiary level pool. Thus, PoolControl Logic 212 may attempt to utilize more valuable/more flexibletertiary level pools to satisfy flexible request ESF if the request hasnot been satisfied within a determined time period by a resource fromone of the primary or secondary level pools.

As the above-example demonstrates, the flexibility of a request may betaken into account to attempt to utilize less valuable/less flexibleresources to satisfy the request, while still attempting to satisfy therequest in a timely manner. By utilizing the flexibility of a request,multiple requests may be issued on the primary level to lessvaluable/less flexible resources in an attempt to obtain a resource tosatisfy the request. Accordingly, the chances of satisfying the requestwith such a less valuable/less flexible resource are increased.Additionally, the overall amount of time before a flexible request issatisfied may be reduced because requests may be issued to multipletypes of resource pools to try to satisfy such a flexible request.

Turning to FIG. 13, a preferred embodiment if further explained byexample. In the exemplary ACD implementation 200 shown in FIG. 13, PoolControl Logic 212 may receive 3 requests 214. At time t=0, Pool ControlLogic 212 receives an inflexible caller E₁ requesting an Englishspeaking resource. Six seconds later, at time t=6, Pool Control Logic212 then receives a flexible caller ES₂ requesting either an English ora Spanish speaking. Then Pool Control Logic 212 receives a flexiblecaller FS₃ requesting either a French or a Spanish speaking resource attime t=13. Furthermore, the exemplary ACD 200 of FIG. 13 may beimplemented such that a ten second delay is utilized before attemptingto service a caller with a resource from the secondary level (e.g.,pools 250 _(ES), 250 _(FS), and 250 _(EF)). Thus, a request is requiredto be pending at the primary level (e.g., pools 250 _(ES), 250 _(FS),and 250 _(EF)) for ten seconds before Pool Control Logic 212 issues arequest for a resource from the secondary level pools. Additionally, theexemplary ACD 200 of FIG. 13 may be implemented such that a twenty-fivesecond delay is utilized before attempting to service a caller with aresource from the tertiary level (e.g., pool 250 _(ESF)). Thus, arequest is required to be pending at the primary level (e.g., pools 250_(E), 250 _(S), and 250 _(F)) for twenty-five seconds before PoolControl Logic 212 issues a request for a resource from the tertiarylevel pool.

When Pool Control Logic 212 receives caller E₁, at time t=0, PoolControl Logic 212 may immediately issue request R₁ to the homogeneouspool 250 _(E). Supposing that no resources in pool 250 _(E) areimmediately available, call E₁ is queued in queue 260 for pool 250 _(E).While call E₁ is pending, Pool Control Logic 212 receives flexible callES₂ requesting either an English or a Spanish speaking resource at timet=6. Pool Control Logic 212 may immediately, at time t=6, issue requestsR₂ and R₃ to the homogeneous pools 250 _(E) and 250 _(S), respectively.Supposing that no resources in pools 250 _(E) or 250 _(S) areimmediately available, call ES₂ is queued in queues 260 for pools 250_(E) and 250 _(S). It should be noted that because request E₁ is alreadypending in queue 260 for pool 250 _(E) when request R₂ is made, requestES₂ is queued behind request E₁ for pool 250 _(E).

As described above, in this exemplary implementation, the delay assignedto secondary level pools 250 _(ES), 250 _(FS), and 250 _(EF) is tenseconds. Therefore, at time t=10 Pool Control Logic 212 simultaneouslygenerates requests R₄ and R₅ to secondary pools 250 _(ES) and 250 _(EF),respectively, for pending call El because, at time t=10, E₁ will havebeen pending for ten seconds. Supposing that no resources in pools 250_(ES) or 250 _(EF) are immediately available when such requests areissued, call E₁ is queued in the queues 260 for pools 250 _(ES) and 250_(EF). Therefore, at time t=10 request E₁ may be pending concurrently inpools 250 _(E), 250 _(ES), and 250 _(EF).

Then, at time t=13, Pool Control Logic 212 receives flexible call FS₃requesting either a French or a Spanish speaking resource, and PoolControl Logic 212 immediately, at time t=13, issues requests R₆ and R₇to the homogeneous pools 250 _(S) and 250 _(F), respectively. Supposingthat no resources in pools 250 _(S) and 250 _(F), are immediatelyavailable when such request is issued, call FS₃ is queued in queue 260for pools 250 _(S) and 250 _(F). It should be noted that because requestES₂ is already pending in queue 260 for pool 250 _(S) when request R₆ ismade, request FS₃ is queued behind request ES₂ for pool 250 _(S).

At time t=16, ten seconds will have passed since flexible request ES₂first being received, and, therefore, Pool Control Logic 212simultaneously issues requests R₈, R₉ and R₁₀ for pending call ES₂ topools 250 _(ES), 250 _(FS) and 250 _(EF), respectively. Supposing thatno resources in pools 250 _(ES), 250 _(FS) and 250 _(EF) are immediatelyavailable when such requests are issued, call ES₂ is queued in thequeues 260 for pools 250 _(ES), 250 _(FS) and 250 _(EF). Therefore, attime t=16 request ES₂ is pending concurrently in pools 250 _(E), 250_(S), 250 _(ES), 250 _(ES) and 250 _(EF). It should be noted thatbecause request E₁ is already pending in queues 260 for pools 250 _(ES)and 250 _(EF) when requests R₈ and R₁₀ are made, request ES₂ is queuedbehind request E₁ for pools 250 _(ES) and 250 _(EF).

At time t=23, ten seconds will have passed since flexible request FS₃first being received, and, therefore, Pool Control Logic 212simultaneously issues requests R₁₁, R₁₂ and R₁₃ for pending call FS₃.Supposing that no resources in pools 250 _(ES, 250) _(FS) or 250 _(EF)are immediately available when such requests are issued, call FS₃ isqueued in the queues 260 for pools 250 _(ES), 250 _(FS) and 250 _(EF).Therefore, at time t=23 request FS₃ is pending concurrently in pools 250_(F), 250 _(S), 250 _(ES), 250 _(FS) and 250 _(EF). It should be notedthat because request ES₂ is already pending in queue 260 for pool 250_(FS) and requests E₁ and ES₂ are already pending in queues 260 forpools 250 _(ES) and 250 _(EF) when requests R₁₁, R₁₂ and R₁₃ are issued,request FS₃ is queued behind requests ES₂ and E₁.

At time t=25, twenty-five seconds will have passed since request E₁first being received, and, therefore, Pool Control Logic 212 generatesrequest R₁₄ to pool 250 _(ESF) for pending call E₁. Supposing that noresource in pool 250 _(ESF) is immediately available when such requestis issued, call E₁ is queued in queue 260 for pool 250 _(ESF).Therefore, at time t=25 request E₁ is pending concurrently in pools 250_(E), 250 _(ES), 250 _(EF), and 250 _(ESF).

At time t=31, twenty-five seconds will have passed since flexiblerequest ES₂ first being received, and, therefore, Pool Control Logic 212generates request R₁₅ to pool 250 _(ESF) for pending call ES₂. Supposingthat no resource in pool 250 _(ESF) is immediately available when suchrequest is issued, call ES₂ is queued in queue 260 for pool 250 _(ESF).Therefore, at time t=31 request ES₂ is pending concurrently in pools 250_(E), 250 _(S), 250 _(ES), 250 _(FS), 250 _(EF) and 250 _(ESF). Itshould be noted that because request E₁ is already pending in queue 260for pool 250 _(ESF) when request R₁₅ is made, request ES₂ is queuedbehind request E₁.

At time t=38, twenty-five seconds will have passed since flexiblerequest FS₃ first being received, and, therefore, Pool Control Logic 212generates request R₁₆ to pool 250 _(ESF) for pending call FS₃. Supposingthat no resource in pool 250 _(ESF) is available, call FS₃ is queued inqueue 260 for pool 250 _(ESF). Therefore, at time t=38 request FS₃ ispending concurrently in pools 250 _(F), 250 _(S), 250 _(ES), 250 _(FS),250 _(EF), and 250 _(ESF). It should be noted that because requests E₁and ES₂ are already pending in queue 260 for pool 250 _(ESF) whenrequest R₁₆ is issued, request FS₃ is queued behind requests E₁ and ES₂.

As a request is serviced, it is removed from all of the concurrentlypending queues. For example, once request E₁ is serviced, it will beremoved from queues 260 for pools 250 _(E), 250 _(ES), 250 _(EF), and250 _(ESF). After the concurrently pending requests for serviced call E₁are removed from queue 260, the request pending just behind request E₁in each queue becomes the next pending request for that queue's pool 250to service.

In an alternative embodiment, the exemplary ACD system 200 of FIG. 13may be implemented such that less flexible requests advance to thesecondary and tertiary levels more quickly than more flexible requests,in an attempt to utilize more flexible resources to service such lessflexible requests. For example, a delay of ten seconds may be utilizedbefore issuing a request to the secondary level resources (e.g., pools250 _(ES), 250 _(FS), and 250 _(EF)) for the pending inflexible requestE₁ of FIG. 13. However, a delay of twenty seconds may be utilized beforeissuing a request to such secondary level resources for the pendingflexible request ES₂. Thus, because a greater number of primaryresources are capable of servicing flexible request ES₂ (e.g., resourcesfrom pools 250 _(E) and 250 _(S)), a greater time delay may be imposedbefore issuing requests for secondary level resources to try to serviceflexible request ES₂. Accordingly, the secondary and tertiary levelresources may be more effectively utilized where most needed, e.g., toservice less flexible requests.

Turning now to FIG. 14, yet another exemplary implementation of ACD 200of a preferred embodiment is illustrated. As described above, it may beless desirable to have a multi-functional/flexible resource serving amulti-functional/flexible request. For example, if a request is capableof speaking English, Spanish and French, the least optimum resource tosatisfy such request may be a resource capable of speaking English,Spanish and French. That is, when a multi-functional/flexible resourceis serving a multi-functional/flexible request, the flexibility of suchresource is wasted on a flexible request. It may be more desirable tosave such flexible resource for requests that are not as flexible.Accordingly, it may be desirable to have less priority assigned tomulti-functional/flexible requests for multifunctional/flexibleresources. A preferred embodiment may implement such a priority bytreating multi-functional/flexible requests as a separate request foreach functionality and summing together the delays for any pools inwhich more than one request is issued, as an example.

For example, suppose that a ten second delay is assigned to eachsecondary pool 250 _(ES, 250) _(FS) and 250 _(EF), and a 30 second delayis assigned to the tertiary pool 250 _(ESF). Further suppose that aninflexible request E₁ is received requesting an English speakingresource. In response, Pool Control Logic 212 may immediately issue arequest R₁ to English pool 250 _(E). Assuming that a resource is notimmediately available to service request E₁, it may be queued in queue260 for pool 250 _(E). If after time delays D₁ and D₂ (each being tenseconds) request E₁ remains unsatisfied, Pool Control Logic 212 mayissue requests R₂ and R₃ to secondary pools 250 _(ES) and 250 _(EF),respectively. If after time delay D₃ of 30 seconds request E₁ remainsunsatisfied, Pool Control Logic 212 may issue request R₄ to tertiarypool 250 _(ESF).

Now suppose that flexible request ES₂ is received requesting either anEnglish or a Spanish speaking resource. In response, Pool Control Logic212 may immediately issue requests R₅ and R₆ to pools 250 _(E) and 250_(S), respectively. Assuming that a resource is not immediatelyavailable from either pool, request ES₂ may be queued in queues 260 forpools 250 _(E) and 250 _(S). If after a determined time delay theprimary pools 250 _(E) and 250 _(S) are unable to service flexiblerequest ES₂, requests may be issued to the secondary pools 250 _(ES),250 _(FS) and 250 _(EF). However, it may be less desirable to haverequest ES₂ serviced by a resource from pool 250 _(ES). Because both therequest ES₂ and resources from pool 250 _(ES) are capable of speakingEnglish and Spanish, pairing such a resource with such a request may notbe desirable because it may be considered wasteful. Accordingly, in apreferred embodiment request ES₂ may be thought of as two requests: onerequest for English and one request for Spanish, and when the requests“collide” (as described below) the delays for such requests may besummed.

Continuing with the above example, Pool Control Logic 212 may issuerequest R₇ to secondary pool 250 _(FS) after delay D₄ of ten seconds.Such a request may be thought of as a request to service the Spanishportion of the request ES₂ pending in queue 260 for pool 250 _(S).Likewise, Pool Control Logic 212 may issue request R₈ to secondary pool250 _(EF) after delay D₅ of ten seconds. Such a request may be thoughtof as a request to service the English portion of the request ES₂pending in queue 260 for pool 250 _(E). Secondary pool 250 _(ES) mayalso be capable of servicing request ES₂, and Pool Control Logic 212 mayissue request R₉ to pool 250 _(ES) after delay D₆ of twenty seconds.Such a request may be thought of as a request to satisfy both theEnglish portion and the Spanish portion of flexible request ES₂ pendingin queues 260 for pools 250 _(E) and 250 _(S) (e.g., the English andSpanish portions of request ES₂ “collide”) because resources from pool250 _(ES) are capable of speaking both English and Spanish. Accordingly,Pool Control Logic 212 may add together the determined ten second delayfor the English portion of the flexible request and the determined tensecond delay for the Spanish portion of the flexible request and issue arequest to pool 250 _(ES) after a twenty second time delay. Accordingly,resources from secondary pool 250 _(ES) may be requested only afterrequests have been issued for resources from secondary pools 250 _(FS)and 250 _(EF) for request ES₂.

If request ES₂ is still not serviced after a further determined time,Pool Control Logic may issue a request to tertiary pool 250 _(ESF). Arequest to tertiary pool 250 _(ESF) may be thought of as a request tosatisfy both the English portion and the Spanish portion of flexiblerequest ES₂ pending in queues 260 for pools 250 _(E) and 250 _(S)because resources from pool 250 _(ESF) are capable of speaking bothEnglish and Spanish. Accordingly, Pool Control Logic 212 may addtogether the determined thirty second delay for the English portion ofthe flexible request and the determined thirty second delay for theSpanish portion of the flexible request and issue a request to pool 250_(ESF) after a sixty second time delay. It should be recognized thatrequest E₁ was pending only thirty seconds before having a requestissued to tertiary pool 250 _(ESF), but request ES₂ is required to bepending sixty seconds before having such a request issued.

Continuing with the above example illustrated in FIG. 14, flexiblerequest ESF₃ may be received. Request ESF₃ may be thought of as havingthree portions (or as being three separate requests), one portion forEnglish, one portion for Spanish and one portion for French. PoolControl Logic 212 may immediately issue requests R₁₁, R₁₂ and R₁₃ toprimary pools 250 _(E), 250 _(S) and 250 _(F), respectively. If aresource is not immediately available from any of those pools to servicerequest ESF₃, the request may be queued in queues 260 for each of theprimary pools 250 _(E), 250 _(S) and 250 _(F). If the request remainsunsatisfied after a determined time period, Pool Control Logic 212 mayissue requests to the secondary pools 250 _(ES), 250 _(FS) and 250_(EF). Pool Control Logic 212 may issue request R₁₄ to secondary pool250 _(ES) after time delay D₈ of twenty seconds. Such a request may bethought of as a request to satisfy both the English portion and theSpanish portion of flexible request ESF₃ pending in queues 260 for pools250 _(E) and 250 _(S) because resources from pool 250 _(ES) are capableof speaking both English and Spanish. Accordingly, Pool Control Logic212 may add together the determined ten second delay for the Englishportion of the flexible request and the determined ten second delay forthe Spanish portion of the flexible request and issue a request to pool250 _(ES) after a twenty second time delay.

Likewise, Pool Control Logic 212 may issue request R₁₅ to secondary pool250 _(FS) after time delay D₉ of twenty seconds. Such a request may bethought of as a request to satisfy both the French portion and theSpanish portion of flexible request ESF₃ pending in queues 260 for pools250 _(F) and 250 _(S) because resources from pool 250 _(FS) are capableof speaking both French and Spanish. Accordingly, Pool Control Logic 212may add together the determined ten second delay for the French portionof the flexible request and the determined ten second delay for theSpanish portion of the flexible request and issue a request to pool 250_(FS) after a twenty second time delay.

Also, Pool Control Logic 212 may issue request R₁₆ to secondary pool 250_(EF) after time delay D₁₀ of twenty seconds. Such a request may bethought of as a request to satisfy both the English portion and theFrench portion of flexible request ESF₃ pending in queues 260 for pools250 _(F). and 250 _(F) because resources from pool 250 _(EF) are capableof speaking both English and French. Accordingly, Pool Control Logic 212may add together the determined ten second delay for the English portionof the flexible request and the determined ten second delay for theFrench portion of the flexible request and issue a request to pool 250_(EF) after a twenty second time delay.

If a resource is not immediately available from any of the secondarypools to service flexible request ESF₃, the request may be queued inqueues 260 for each of the secondary pools 250 _(ES), 250 _(FS) and 250_(EF). If the request still remains unsatisfied after a determined timeperiod, Pool Control Logic 212 may issue a request to the tertiary pool250 _(ESF). Pool Control Logic 212 may issue request R₁₁₇ to tertiarypool 250 _(ESF) after time delay D₁, of ninety (90) seconds. Such arequest may be thought of as a request to satisfy the English portion,the Spanish portion and the French portion of flexible request ESF₃pending in queues 260 for pools 250 _(E), 250 _(S) and 250 _(F) becauseresources from tertiary pool 250 _(ESF) are capable of speaking English,Spanish and French. Accordingly, Pool Control Logic 212 may add togetherthe determined thirty second delay for the English portion of theflexible request, the determined thirty second delay for the Spanishportion of the flexible request and the determined thirty second delayfor the French portion of the flexible request and issue a request topool 250 _(ES) after a ninety second time delay.

It should be understood that in alternative embodiments either the PoolControl Logic 212 or the resource pools may be responsible forprioritizing requests through time delays, and either the Pool ControlLogic 212 or the resource pools may be responsible for removingconcurrently pending requests from the queues of the “losing” pools whena request is satisfied by a “winning” pool. Any combination of the PoolControl Logic 212 and the resource pools controlling the prioritizationof requests through time delays and removing requests from the queues of“losing” pools may be implemented in alternative embodiments. Any suchalternative embodiment is intended to be within the scope of the presentinvention.

The examples in FIGS. 2-14 have been described as to prioritize requestsR₁-R_(n) according to a hierarchy of pools 410 in ascending order ofmulti-function capability (e.g., multi-lingualism) of the requestsand/or the resources within the resource pools. Other hierarchies arepossible, such as in order of economic value or demographic scarcity,with equivalent enabling effect. Alternatively, the hierarchy may beaccording to numeric value of the quantity of resources 412 containedwithin pools 410. Moreover, the hierarchy may be based on multiplecharacteristics, such as multi-function capability and numeric value ofresources 412 contained within pools 410. Hierarchies may also be inascending or descending order. As described herein, the hierarchy mayaccount for requests' preferences, a resource manager's preferences, ora balance of the two.

In a preferred embodiment, the Pool Control Logic 212 uses a timesequence (or “cascade”) to prioritize resource requests issued toselected resource pools to service an initial request (e.g., a callerrequest). In alternative embodiments, the resource pools 212 may utilizea time sequence (or “cascade”) to prioritize resource requests issued tothe selected resource pools to service an initial request (e.g., acaller request). The time sequence utilized by the Pool Control Logic212 or the resource pools may advantageously be determined to observeparticular flexibility, scarcity or value of the requests and theresources serving requests. The time sequence may be predetermined(e.g., entered by a user or predetermined by the Pool Control Logic 212or resource pools) or it may be determined by the Pool Control Logic 212or the resource pools in real-time. Thus, the Pool Control Logic 212 orthe resource pools may monitor the operation of the system and adjustthe time sequence accordingly, in real-time.

It will be further appreciated that the invention as described withreference to FIGS. 2-14 and the accompanying exemplary narrative are notlimited to the number of resources or the number of pools shown in theFIGS. or used in the examples provided herein. It is within the scope ofthe present invention to allow any number of resource pools and anynumber of resources within each resource pool. It will be furtherappreciated that a resource pool may be able to satisfy any given numberof requests. In the FIGS. and examples contained herein, multi-function(multi-skilled or multi-talented) pool 250 _(ESF) could satisfy the mosttypes of requests (i e., 3 different types of requests). However, it iswithin the scope of the present invention to allow any number ofmulti-function (or multi-skilled or multi-talented) pools having anynumber of functions/skills/talents. Likewise, it will be appreciatedthat a request may be able to be satisfied by any given number ofresources (e.g., may have unlimited flexibility). In the FIGS. andexamples contained herein, flexible/multi-functional (multi-skilled ormulti-talented) requests capable of speaking 3 different languages(English, Spanish and French) were provided. However, it is within thescope of the present invention to allow flexible requests having anynumber of functions/skills/talents.

It will be further appreciated that in accordance with the presentinvention, the queues shown and described herein may be actual physicalqueues or they may be “virtual” queues. That is, the queues shown anddescribed for each of the resource pools (i.e., queues 260), the queueshown and described for the Pool Control Logic 212 (i.e., queue 216) mayeach be actual physical queues or may be “virtual” queues.

It will be further appreciated that the invention as described withreference to FIGS. 2-14 and the accompanying exemplary narrative are notlimited to language-oriented resources and requests. The inventionapplies with equivalent enabling effect generally to allocatingresources to flexible requests. The invention is enabling on many typesof flexible requests for resources, such as telephone callers withmulti-lingual capability, or flexible requests for data elements in adatabase, or flexible requests for computer network resources, orflexible requests for telephony network resources, or even, for example,flexible requests made by mechanics sharing tools out of a unitarytoolbox.

Thus, the resource management scheme of the present invention is notintended to be limited to telephony resources, but may be appliedequally to various other types of resources. For example, various typesof flexible requests for computer resources may be received and utilizedfor better management of the computer resources in servicing requests.For instance, as shown in the exemplary implementation of FIG. 15,various types of data storage resources may be included within acomputer system for servicing data storage/retrieval requests fromvarious types of devices. In the exemplary implementation of FIG. 15,various storage devices, such as floppy drive 1514, CD-ROM drive 1516,DVD drive 1518, tape drive 1519, and ZIP drive 1520, may be includedwithin a computer system. A resource manager 1512 may be implemented toreceive requests and manage allocation of the data storage devices toservice such requests, much as the Pool Control Logic of the exemplaryACD systems described above received callers and allocated agents. Oneor more various types of devices that are capable of storing/retrievingdata to/from such data storage devices are also provided, such asPersonal Data Assistant (“PDA”) 1502, personal computer (“PC”) 1504,laptop computer 1506, and cellular telephone 1508. Such devices may havea direct connection to resource manager 1512, which enablescommunication of data therebetween, or they may be capable ofcommunicating with resource manager 1512 via Network 1510, as shown inFIG. 8. Network 1510 may comprise any means of informationcommunication, such as a PSN, a proprietary network, a general purposeprocessor-based information network, dedicated communication lines, asatellite system, a cable system, a computer network, direct PC to PCconnection, a local area network (LAN), a wide area network (WAN), modemto modem connection, the Internet, an Intranet or any combinationthereof suitable for providing information communication between aparticular device (or “network element”) and the resource manager 1512.

Accordingly, when one or more of the devices 1502, 1504, 1506, or 1508requests to store data, resource manager 1512 may determine theappropriate storage device to satisfy such a request and allocate suchstorage device to service the request. Of course, the various storagedevices may possess certain attributes, such as storage capacity,storage speed, retrieval speed, and/or other types of skills/attributes,which may or may not be suitable for servicing any given requestreceived by resource manager 1512. For instance, a relatively flexiblerequest requiring to store data a relatively small amount of data to anyavailable device may be received by resource manager 1512, and resourcemanager 1512 may then efficiently service the flexible request utilizingan available data storage device. However, a less flexible request thatrequires storage of an extremely large amount of data may require thatthe resource manager 1512 allocate the ZIP drive 1520, for instance, toservice such a less flexible request.

Although the present invention and its advantages have been described indetail, it should be understood that various changes, substitutions andalterations can be made herein without departing from the spirit andscope of the invention as defined by the appended claims. Moreover, thescope of the present application is not intended to be limited to theparticular embodiments of the process, machine, manufacture, compositionof matter, means, methods and steps described in the specification. Asone of ordinary skill in the art will readily appreciate from thedisclosure of the present invention, processes, machines, manufacture,compositions of matter, means, methods, or steps, presently existing orlater to be developed that perform substantially the same function orachieve substantially the same result as the corresponding embodimentsdescribed herein may be utilized according to the present invention.Accordingly, the appended claims are intended to include within theirscope such processes, machines, manufacture, compositions of matter,means, methods, or steps.

1. A method of managing resources, said method comprising the steps of:providing a finite number of resources for servicing requests thereto,said finite number of resources including at least a first resourcehaving a first attribute and at least a second resource having a secondattribute; receiving at least one request for at least one of saidresources; determining the flexibility of said at least one request asto at least one attribute possessed by said resources for servicing saidat least one request; and based at least in part on said flexibility ofsaid at least one request, issuing at least one resource request to oneor more of said resources.
 2. The method of claim 1 wherein said step ofdetermining the flexibility of said at least one request furtherincludes the step of: determining one or more attributes of saidresources that are suitable for servicing said at least one request. 3.The method of claim 1 wherein said resources include agents within atelephony call center.
 4. The method of claim 3 wherein said at leastone request includes a request from a caller to a telephony center. 5.The method of claim 4 wherein said at least a first resource having afirst attribute includes an agent having a first language capability andwherein said at least a second resource having a second attributeincludes an agent having a second language capability.
 6. The method ofclaim 5 wherein said determining step includes determining the languagecapability of an agent that is suitable for servicing said caller. 7.The method of claim 1 wherein said resources include resources within acomputer system.
 8. The method of claim 7 wherein said resources includeresources selected from the group consisting of: data input resources,data output resources, data storage resources, and data processingresources.
 9. The method of claim 1 wherein said attribute includes atleast one skill possessed by said resources.
 10. The method of claim 1wherein said attribute includes at least one functional capabilitypossessed by said resources.
 11. The method of claim 1 wherein saiddetermining the flexibility of said at least one request comprises:determining that at least one of said at least one request is flexiblesuch that any of a plurality of different attributes possessed by saidresources are suitable for servicing the flexible request.
 12. Themethod of claim 11 wherein said request is a request from a caller to atelephony center and said resources are agents within said telephonycall center, and wherein said plurality of different attributes comprisea plurality of different languages.
 13. A method of allocating resourcesselected from a finite number of resources for servicing requests, saidmethod comprising the steps of: identifying at least a first attributepossessed by at least a first pool of said resources; identifying atleast a second attribute possessed by at least a second pool of saidresources; receiving requests for service by at least one of saidresources; determining the flexibility of said requests, wherein atleast one of said requests is determined to be flexible such that any ofa plurality of different attributes possessed by said resources aresuitable for servicing the at least one flexible request; and based atleast in part on the determined flexibility of said determining for eachof said requests at least one suitable resource for servicing therequest.
 14. The method of claim 13 wherein said step of determining theflexibility of said requests further includes the step of: determiningone or more attributes of said resources that are suitable for servicingsaid at least one flexible request.
 15. The method of claim 14 whereinsaid step of determining the flexibility of said requests furtherincludes the steps of: determining whether said at least a firstattribute possessed by said at least a first pool of said resources issuitable for servicing said at least one flexible request; anddetermining whether said at least a second attribute possessed by saidat least a second pool of said resources is suitable for servicing saidat least one flexible request.
 16. The method of claim 15 furtherincluding the steps of: if determined that said at least a firstattribute is suitable for servicing said at least one flexible requestand determined that said at least a second attribute is suitable forservicing said at least one flexible request, then determining that anyresource from said at least a first pool and said at least a second poolof resources is suitable for servicing said at least one flexiblerequest.
 17. The method of claim 16, further including the step of:allocating a first available resource of said at least a first pool andsaid at least a second pool to service said at least one flexiblerequest.
 18. The method of claim 13 wherein said resources includeagents within a telephony call center.
 19. The method of claim 18wherein said requests include a request from a caller to a telephonycenter.
 20. The method of claim 19 wherein said at least a firstattribute includes a first language capability and wherein said at leasta second attribute includes a second language capability.
 21. The methodof claim 20 wherein said step of determining the flexibility of saidrequests includes determining the language capability of an agent thatis suitable for servicing said caller.
 22. The method of claim 11wherein said resources include resources within a computer system. 23.The method of claim 22 wherein said resources include resources selectedfrom the group consisting of: data input resources, data outputresources, data storage resources, and data processing resources. 24.The method of claim 13 wherein said at least a first attribute and saidat least a second attribute each include at least one skill possessed bysaid resources.
 25. The method of claim 13 wherein said at least a firstattribute and said at least a second attribute each include at least onefunctional capability possessed by said resources.
 26. The method ofclaim 13 wherein said at least one flexible request is a request from acaller to a telephony center and said resources are agents within saidtelephony call center, and wherein said plurality of differentattributes comprise a plurality of different languages.
 27. A resourcemanagement system for managing a finite number of resources forservicing requests, said resource management system comprising: at leasta first pool of resources each possessing at least a first attribute; atleast a second pool of resources each possessing at least a secondattribute; means for receiving at least one request for service by atleast one of said resources; means for determining the flexibility ofsaid at least one request; and means, based at least in part on saidflexibility of said at least one request, for determining at least onesuitable resource for servicing said at least one request.
 28. Thesystem of claim 27 wherein said means for determining the flexibility ofsaid at least one request includes a computer processor executingcomputer software code to determine one or more attributes of saidresources that are suitable for servicing said at least one request. 29.The system of claim 27 wherein said means for determining at least onesuitable resource includes a computer processor executing computersoftware code.
 30. The system of claim 27 wherein said receiving meansincludes a connection to a network.
 31. The system of claim 30, whereinsaid network is selected from the group consisting of: public switchedtelephony network (PSTN), local area network (LAN), wide area network(WAN), the Internet, an Intranet, or any combination thereof.
 32. Thesystem of claim 27 wherein said receiving means includes a switchingsystem.
 33. The system of claim 32 wherein said switching systemincludes an ACD.
 34. The system of claim 27 wherein said resourcesinclude agents within a telephony call center.
 35. The system of claim27 wherein said at least one request includes a request from a caller toa telephony center.
 36. The system of claim 27 wherein said resourcesinclude resources within a computer system.
 37. The system of claim 35wherein said resources include resources selected from the groupconsisting of: data input resources, data output resources, data storageresources, and data processing resources.
 38. The system of claim 27wherein said at least a first attribute and said at least a secondattribute each include at least one skill possessed by said resources.39. The system of claim 27 wherein said at least a first attribute andsaid at least a second attribute each include at least one functionalcapability possessed by said resources.
 40. The system of claim 27wherein said means for determining determines at least one of the atleast one request as being flexible such that any of a plurality ofdifferent attributes possessed by said resources are suitable forservicing the flexible request.
 41. The system of claim 40 wherein saidmeans for determining determines at least one of the at least onerequest as being flexible such that either of said resources of saidfirst pool possessing said first attribute or said resources of saidsecond pool possessing said second attribute are suitable for servicingthe flexible request.
 42. A resource management system for managing afinite number of resources for servicing requests, said systemcomprising: connection to a network capable of receiving at least onerequest for at least one of said resources; memory for storing computerexecutable program code, wherein said computer executable program codeincludes code executable to determine the flexibility of said at leastone request as to attributes of said resources that are suitable forservicing said at least one request, and code executable to determineone or more resources suitable for servicing said at least one requestbased at least in part on said flexibility of said at least one request;and processor for executing said computer executable program code. 43.The system of claim 42 wherein said network is selected from the groupconsisting of: public switched telephony network (PSTN), local areanetwork (LAN), wide area network (WAN), the Internet, an Intranet, orany combination thereof.
 44. The system of claim 42 wherein saidconnection to a network includes a switching system.
 45. The system ofclaim 44 wherein said switching system includes an ACD.
 46. The systemof claim 42 wherein said resources include agents within a telephonycall center.
 47. The system of claim 42 wherein said at least onerequest includes a request from a caller to a telephony center.
 48. Thesystem of claim 42 wherein said resources include resources within acomputer system.
 49. The system of claim 48 wherein said resourcesinclude resources selected from the group consisting of: data inputresources, data output resources, data storage resources, and dataprocessing resources.
 50. The system of claim 42 wherein said codeexecutable to determine the flexibility of said at least one requestdetermines at least one of the at least one request as being flexiblesuch that any of a plurality of different attributes possessed by saidresources are suitable for servicing the flexible request.